내가 그들을 다른 하나의 데이터베이스에서 여러 테이블을 이동 및 보관을 시도하고 있지만, 아래 문으로 선택에 구문 오류와 함께 실패합니다프리픽스가있는 여러 테이블을 준비된 명령문을 사용하여 아카이브 데이터베이스로 이동하십시오. 왜이 MySQL 문은 유효하지 않습니까?
이You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@tbls ENGINE=archive RENAME @tbls.database_two' at line 1
SELECT 문 구문이의 제안에 동일 수동으로 그리고 그것은 내가 대문자 오류 중 하나를 실행하는 것처럼 보이지 않습니다.
무엇이 누락 되었습니까?
SET GROUP_CONCAT_MAX_LEN=10000;
SET @tbls = (
SELECT GROUP_CONCAT(TABLE_NAME)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database_one'
AND TABLE_NAME LIKE 'prefix_%'
);
SET @rnStmt = CONCAT('ALTER TABLE @tbls ENGINE=archive RENAME @tbls.database_two');
-- SELECT @rnStmt;
PREPARE stmt FROM @rnStmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
MySQL은 5.1 에 CentOS 6.5
편집 : 복사 UPDATE
잘못된 오류 메시지 : 일부 진전, 선택 작품 그러나 나는 점점하지있어 sytax 검사 제작에 '없음 데이터베이스 선정' 준비 문.
SET GROUP_CONCAT_MAX_LEN=10000;
SET @tbls = (
SELECT GROUP_CONCAT(TABLE_NAME)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database_one'
AND TABLE_NAME LIKE 'prefix_%'
);
SET @rnStmt = CONCAT('ALTER TABLE ', @tbls, ' ENGINE=archive RENAME database_two.', @tbls);
PREPARE stmt FROM @rnStmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
USE와 몇 가지 다른 변형을 시도했지만 행운은 없습니다. 당신이 RENAME TABLE 문을 사용하고, 또한, 당신은 전체 현재 테이블 이름과 전체 새 테이블 이름을 수집해야 할 필요가있는 복수 테이블의
누락') '''SELECT GROUP_CONCAT (TABLE_NAME' –
당신이 이것들 중 하나가 필요합니다.) "(에러 메시지 종류가 그 것을 말했습니다) – Strawberry
게시 오류 였고, Notepadd ++에서 문장을 생성하고 브라우저에 복사하려고합니다. 형식을 약간 짖는 소리. 같은 오류가 발생합니다. 변수 이름을 두 번 사용하고 있기 때문입니까? 허용되는지 확실하지 않습니다. – jbrain