Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 데이터베이스 테이블의 데이터베이스 엔진을 변경하는 방법은 무엇입니까?

<시간/>

먼저 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)