Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แก้ไขข้อผิดพลาด Syntax เมื่อสร้างคอลัมน์ชื่อ index ใน MySQL

INDEX เป็นคำสงวน (Reserved Word) ไม่สามารถใช้เป็นชื่อคอลัมน์ได้โดยตรง ต้องห่อด้วย backticks `

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> index INT
    -> ) ENGINE=MyISAM;
ERROR 1064 (42000): You have an error in your SQL syntax...

แก้ไขด้วย backticks:

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> `index` INT
    -> ) ENGINE=MyISAM;
Query OK, 0 rows affected (0.28 sec)
mysql> INSERT INTO DemoTable(`index`) VALUES(4);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable(`index`) VALUES(8);
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable(`index`) VALUES(12);
Query OK, 1 row affected (0.06 sec)
mysql> SELECT * FROM DemoTable;
+----+-------+
| Id | index |
+----+-------+
|  1 |     4 |
|  2 |     8 |
|  3 |    12 |
+----+-------+
3 rows in set (0.00 sec)

แนวทางปฏิบัติ: หลีกเลี่ยงคำสงวนเป็นชื่อตาราง/คอลัมน์ หากบังคับต้องใช้ ให้ห่อ backticks ทุกครั้งที่อ้างอิง