MySQL
MyISAM에서 InnoDB로 변환하기
수색…
기본 변환
ALTER TABLE foo ENGINE=InnoDB;
이렇게하면 테이블이 변환되지만 엔진 간의 차이는 처리되지 않습니다. 대부분의 차이는 중요하지 않습니다. 특히 작은 테이블의 경우. 그러나 더 바쁜 테이블의 경우 다른 고려 사항을 고려해야합니다. 전환 고려 사항
하나의 데이터베이스에서 모든 테이블 변환
하나의 데이터베이스에있는 모든 테이블을 쉽게 변환하려면 다음을 사용하십시오.
SET @DB_NAME = DATABASE();
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE';
참고 :
DATABASE()
함수가 작동하려면 데이터베이스에 연결되어 있어야하며, 그렇지 않으면NULL
을 반환NULL
. 이는 데이터베이스를 지정하지 않고 연결할 수 있으므로 서버와 함께 제공되는 표준 mysql 클라이언트에 주로 적용됩니다.
이 SQL 문을 실행하여 데이터베이스에있는 모든 MyISAM
테이블을 검색하십시오.
마지막으로 출력을 복사하고 SQL 쿼리를 실행하십시오.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow