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 ทุกครั้งที่อ้างอิง