수색…


기본 변환

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