먼저 MySQL 데이터베이스 유형, 즉 엔진이 InnoDB인지 MyISAM인지 확인합니다. 이를 달성하려면 information_schema.columns.tables의 엔진 열을 사용하십시오.
구문은 다음과 같습니다.
SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ’yourDatabaseName’ AND TABLE_NAME = ’yourTableName’;
여기에 'StudentInformations'라는 이름의 테이블이 있습니다 -
mysql> create table StudentInformations -> ( -> StudentId int not null auto_increment, -> StudentFirstName varchar(20), -> StudentLastName varchar(20), -> Primary Key(StudentId) -> ); Query OK, 0 rows affected (0.57 sec)
이제 위 구문의 구현을 사용하여 테이블이 InnoDB 또는 MyISAM을 사용하고 있음을 알 수 있습니다. 우리 데이터베이스는 '테스트'입니다.
동일한 −
에 대한 쿼리는 다음과 같습니다.mysql> select engine from information_schema.tables -> where table_schema = 'test' -> and table_name = 'StudentInformations';
다음은 출력입니다 -
+--------+ | ENGINE | +--------+ | InnoDB | +--------+ 1 row in set (0.05 sec)
alter 명령을 사용하여 'StudentInformations' 테이블의 엔진을 변경합니다. 모든 테이블의 엔진을 변경하는 구문은 다음과 같습니다.
ALTER TABLE yourTableName ENGINE = ‘yourEngineName’;
이제 엔진 InnoDB를 MyISAM으로 변경해 보겠습니다. 쿼리는 다음과 같습니다 -
mysql> alter table StudentInformations ENGINE = 'MyISAM'; Query OK, 6 rows affected (1.84 sec) Records − 6 Duplicates − 0 Warnings − 0
위에 표시된 결과는 테이블에 6개의 행이 있기 때문에 영향을 받는 6개의 행을 보여줍니다.
테이블이 InnoDB에서 MyISAM으로 변환되었는지 확인하기 위해 다음 쿼리를 수행합니다. -
mysql> select engine from information_schema.tables -> where table_schema = 'test' -> and table_name = 'StudentInformations';
다음은 엔진이 성공적으로 업데이트되었음을 표시하는 출력입니다. -
+--------+ | ENGINE | +--------+ | MyISAM | +--------+ 1 row in set (0.00 sec)