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

MySQL: Sửa lỗi ERROR 1064 do dùng sai dấu nháy (backtick vs single quote)

Trong MySQL, tên cột, tên bảng, tên database phải dùng backtick (`), còn chuỗi ký tự (string) dùng single quote (') hoặc double quote ("). Dùng nháy đơn cho tên cột sẽ gây lỗi ERROR 1064 (42000).

Ví dụ lỗi

mysql> CREATE TABLE Backtick_Demo (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Ten VARCHAR(20),
    -> TenFile VARCHAR(30),
    -> PRIMARY KEY(Id)
    -> );

-- SAI: dùng single quote cho tên cột TenFile
mysql> INSERT INTO Backtick_Demo(`Ten`, 'TenFile') VALUES('John', 'Sum.cpp');
ERROR 1064 (42000): You have an error in your SQL syntax...

Cách đúng: dùng backtick cho tên cột

mysql> INSERT INTO Backtick_Demo(`Ten`, `TenFile`) VALUES('John', 'Sum.cpp');
Query OK, 1 row affected

Cũng được: không dùng backtick (nếu tên không chứa ký tự đặc biệt/từ khóa)

mysql> INSERT INTO Backtick_Demo(Ten, TenFile) VALUES('Larry', 'SocketProgram.java');
mysql> INSERT INTO Backtick_Demo(Ten, TenFile) VALUES('Mike', 'UserCreationScript.sql');

Kết quả

+----+-------+------------------------+
| Id | Ten   | TenFile                |
+----+-------+------------------------+
| 1  | John  | Sum.cpp                |
| 2  | Larry | SocketProgram.java     |
| 3  | Mike  | UserCreationScript.sql |
+----+-------+------------------------+

Quy tắc nhớ:

  • `ten_cot`, `ten_bang`, `ten_db` → identifier (định danh)
  • 'chuoi_ky_tu', "chuoi_ky_tu" → string literal (giá trị)