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

Lỗi khi đặt tên bảng là "references" trong MySQL

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.