Tên references là từ khóa dành riêng (reserved keyword) trong MySQL, không thể dùng làm tên bảng/cột trực tiếp.
Giải pháp: Bọc tên bằng backticks ` (dấu ngã).
Tạo bảng với tên `references` (có backticks)
mysql> create table `references` (Subject text); Query OK, 0 rows affected (0.44 sec)
Chèn dữ liệu (cần backticks cho tên bảng)
mysql> insert into `references` values('Introduction To MySQL');
Query OK, 1 row affected (0.28 sec)
mysql> insert into `references` values('Introduction To MongoDB');
Query OK, 1 row affected (0.15 sec)
mysql> insert into `references` values('Introduction To Spring and Hibernate');
Query OK, 1 row affected (0.13 sec)
mysql> insert into `references` values('Introduction To Java');
Query OK, 1 row affected (0.18 sec)
Truy vấn dữ liệu (cần backticks)
mysql> select * from `references`;
Kết quả
+--------------------------------------+ | Subject | +--------------------------------------+ | Introduction To MySQL | | Introduction To MongoDB | | Introduction To Spring and Hibernate | | Introduction To Java | +--------------------------------------+ 4 rows in set (0.00 sec)
Khi nào cần backticks:
- Tên bảng/cột trùng từ khóa:
select, insert, update, delete, where, order, group, by, limit, key, index, references, constraint, trigger, procedure, function, ... - Tên chứa khoảng trắng:
`ten bang` - Tên bắt đầu bằng số:
`123table` - Tên chứa ký tự đặc biệt:
`ten-cot`
Thói quen tốt: Luôn dùng backticks cho mọi identifier (tên bảng, cột, index, alias) để tránh lỗi và tăng tính đọc hiểu.
Kiểm tra từ khóa dành riêng: SHOW KEYWORDS; (MySQL 8.0+) hoặc xem tài liệu phiên bản tương ứng.