Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lỗi TYPE = InnoDB trong MySQL: Dùng ENGINE = InnoDB thay thế

TYPE = InnoDB đã lỗi thời, dùng ENGINE = InnoDB

Từ MySQL 5.1, từ khóa TYPE trong CREATE TABLE bị deprecated (lỗi thời). MySQL 5.5+ chỉ hỗ trợ ENGINE. MySQL 8.0 báo lỗi cú pháp nếu dùng TYPE.

Lỗi khi dùng TYPE

mysql> CREATE TABLE Product_Information (
    ProductId INT, ProductName VARCHAR(10), ProductDeliveryDate DATETIME
) "TYPE = InnoDB";
ERROR 1064 (42000): You have an error in your SQL syntax... near '"TYPE = InnoDB"'

Đúng: Dùng ENGINE

mysql> CREATE TABLE Product_Information (
    ProductId INT, ProductName VARCHAR(10), ProductDeliveryDate DATETIME
) ENGINE = InnoDB;
Query OK, 0 rows affected (0.73 sec)

Kiểm tra version MySQL

SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.12    |
+-----------+

Các engine phổ biến

Thay đổi engine bảng hiện có

ALTER TABLE tenBang ENGINE = InnoDB;

Xem engine hiện tại

SHOW TABLE STATUS LIKE 'tenBang'\G
-- hoặc
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'tenDB';

Lưu ý: MySQL 8.0 mặc định default_storage_engine = InnoDB. Chỉ cần chỉ định ENGINE khi muốn khác mặc định.

EngineĐặc điểmDùng cho
InnoDBACID, FK, Row-lock, MVCC, Crash-safeMặc định, OLTP, hầu hết ứng dụng
MyISAMTable-lock, Fulltext (cũ), Không FK, Nhanh đọcRead-only, analytics, log
MEMORYLưu RAM, mất khi restart, Hash indexCache, lookup table nhỏ
CSVLưu file CSV, không indexData exchange
ARCHIVENén, chỉ INSERT/SELECTLog lịch sử, audit