Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để thay đổi công cụ cơ sở dữ liệu của một bảng cơ sở dữ liệu MySQL?

Đầu tiên, xác định loại cơ sở dữ liệu MySQL, tức là công cụ của nó là InnoDB hay MyISAM. Để đạt được điều này, hãy sử dụng cột công cụ từ information_schema.columns.tables.

Cú pháp như sau.

SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = ’yourDatabaseName’
AND TABLE_NAME = ’yourTableName’;

Ở đây, tôi có một bảng với tên ‘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)

Bây giờ bạn có thể biết bảng đang sử dụng InnoDB hoặc MyISAM bằng cách sử dụng cú pháp trên. Cơ sở dữ liệu của chúng tôi là "thử nghiệm".

Truy vấn như sau cho cùng một -

mysql> select engine from information_schema.tables
   -> where table_schema = 'test'
   -> and table_name = 'StudentInformations';

Sau đây là kết quả -

+--------+
| ENGINE |
+--------+
| InnoDB |
+--------+
1 row in set (0.05 sec)

Thay đổi công cụ của bảng 'StudentInformations' bằng lệnh thay đổi. Cú pháp như sau để thay đổi công cụ của bất kỳ bảng nào.

ALTER TABLE yourTableName ENGINE = ‘yourEngineName’;

Bây giờ chúng ta hãy thay đổi engine InnoDB thành MyISAM. Truy vấn như sau -

mysql> alter table StudentInformations ENGINE = 'MyISAM';
Query OK, 6 rows affected (1.84 sec)
Records − 6 Duplicates − 0 Warnings − 0

Kết quả hiển thị ở trên cho thấy 6 hàng bị ảnh hưởng vì có 6 hàng trong bảng.

Để kiểm tra xem bảng có được chuyển đổi từ InnoDB sang MyISAM hay không, sau đây là truy vấn -

mysql> select engine from information_schema.tables
-> where table_schema = 'test'
-> and table_name = 'StudentInformations';

Đây là kết quả hiển thị động cơ đã được cập nhật thành công -

+--------+
| ENGINE |
+--------+
| MyISAM |
+--------+
1 row in set (0.00 sec)