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

MySQL báo lỗi khi tên bảng "match" không được bao quanh bởi backticks

Nguyên nhân

match là từ khóa dành riêng (reserved word) trong MySQL. Nếu dùng làm tên bảng hoặc cột mà không bao quanh bằng backticks (`), sẽ gây lỗi cú pháp.

1. Lỗi khi không dùng backticks

mysql> select * from match;
ERROR 1064 (42000): You have an error in your SQL syntax... near 'match' at line 1

2. Tạo bảng đúng cách

mysql> create table `match` (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    PlayerName varchar(20)
);
Query OK, 0 rows affected (0.62 sec)

3. Chèn dữ liệu (luôn dùng backticks cho tên bảng)

mysql> insert into `match`(PlayerName) values('Chris'); Query OK, 1 row affected (0.13 sec)
mysql> insert into `match`(PlayerName) values('Bob'); Query OK, 1 row affected (0.16 sec)
mysql> insert into `match`(PlayerName) values('David'); Query OK, 1 row affected (0.24 sec)
mysql> insert into `match`(PlayerName) values('Mike'); Query OK, 1 row affected (0.15 sec)
mysql> insert into `match`(PlayerName) values('Sam'); Query OK, 1 row affected (0.14 sec)

4. Truy vấn dữ liệu

mysql> select * from `match`;
+----+------------+
| Id | PlayerName |
+----+------------+
| 1  | Chris      |
| 2  | Bob        |
| 3  | David      |
| 4  | Mike       |
| 5  | Sam        |
+----+------------+
5 rows in set (0.00 sec)

Quy tắc: Luôn dùng backticks cho các identifier trùng từ khóa dành riêng.