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
| Engine | Đặc điểm | Dùng cho |
|---|---|---|
| InnoDB | ACID, FK, Row-lock, MVCC, Crash-safe | Mặc định, OLTP, hầu hết ứng dụng |
| MyISAM | Table-lock, Fulltext (cũ), Không FK, Nhanh đọc | Read-only, analytics, log |
| MEMORY | Lưu RAM, mất khi restart, Hash index | Cache, lookup table nhỏ |
| CSV | Lưu file CSV, không index | Data exchange |
| ARCHIVE | Nén, chỉ INSERT/SELECT | Log lịch sử, audit |