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

Sử dụng từ khóa dành riêng 'Key' làm tên cột trong MySQL với backtick


Vấn đề

KEY là từ khóa dành riêng (reserved word) trong MySQL (dùng trong INDEX, PRIMARY KEY, FOREIGN KEY...). Nếu dùng làm tên cột/table trực tiếp sẽ báo lỗi cú pháp.

Giải pháp: Dùng backtick (`)

Bao quanh identifier bằng backtick để MySQL hiểu đây là tên định danh, không phải từ khóa.

Ví dụ minh họa

Tạo bảng với cột `Key`

mysql> CREATE TABLE DemoTable (
    `Key` INT
);
Query OK, 0 rows affected (0.67 sec)

Chèn dữ liệu

mysql> INSERT INTO DemoTable VALUES (100), (101), (110), (120);

Truy vấn (cần backtick)

mysql> SELECT * FROM DemoTable;
+------+
| Key  |
+------+
| 100  |
| 101  |
| 110  |
| 120  |
+------+
mysql> SELECT `Key` FROM DemoTable WHERE `Key` > 100;

Các từ khóa thường gặp cần backtick

Từ khóaVí dụ dùng làm tên cột
KEY`Key`
INDEX`Index`
ORDER`Order`
GROUP`Group`
SELECT`Select`
WHERE`Where`
TABLE`Table`
DATABASE`Database`
USER`User`
PASSWORD`Password`

Khuyến nghị tốt nhất

  • Luôn dùng backtick cho mọi identifier (table, column, index, alias...).
  • Cấu hình sql_mode=ANSI_QUOTES cho phép dùng double quote " thay backtick (chuẩn SQL), nhưng ít phổ biến trong MySQL.
  • Tránh đặt tên trùng từ khóa nếu có thể (đổi thành KeyId, SortOrder, GroupId...).