MySQL báo lỗi ERROR 1064 (42000) khi dùng từ khóa dành riêng (reserved word) làm tên bảng hoặc cột không có backtick.
Các trường hợp lỗi thường gặp
Trường hợp 1: Tên bảng là từ khóa
mysql> CREATE TABLE insert (Id INT); ERROR 1064 (42000): ... near 'insert (Id int)' at line 1
Trường hợp 2: Tên cột là từ khóa
mysql> CREATE TABLE Customers (Add INT); ERROR 1064 (42000): ... near 'Add int)' at line 3
Giải pháp: Sử dụng backtick (`)
CREATE TABLE `insert` (`Add` INT); Query OK, 0 rows affected
Backtick báo cho MySQL biết đây là identifier (định danh), không phải keyword.
Một số từ khóa dành riêng phổ biến
| Nhóm | Từ khóa (mẫu) |
|---|---|
| DML | SELECT, INSERT, UPDATE, DELETE, REPLACE |
| DDL | CREATE, ALTER, DROP, TRUNCATE, RENAME |
| Constraint | PRIMARY, KEY, FOREIGN, UNIQUE, CHECK, INDEX |
| Logic | AND, OR, NOT, IN, LIKE, BETWEEN, IS, NULL |
| Khác | ORDER, GROUP, BY, LIMIT, OFFSET, JOIN, UNION |