คำว่า index เป็น คำสงวน (Reserved Word) ใน MySQL หากต้องการใช้เป็นชื่อคอลัมน์ ต้องห่อด้วย แบ็กทิก (`)
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
`index` int );
Query OK, 0 rows affected (0.48 sec)
เพิ่มข้อมูล
mysql> insert into DemoTable values(1000); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(1020); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(967); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(567); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(1010); Query OK, 1 row affected (0.18 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+-------+ | index | +-------+ | 1000 | | 1020 | | 967 | | 567 | | 1010 | +-------+ 5 rows in set (0.00 sec)
คำสั่ง ORDER BY คอลัมน์ `index` แสดง 3 ค่าสูงสุด
mysql> select * from DemoTable order by `index` DESC LIMIT 3;
ผลลัพธ์
+-------+ | index | +-------+ | 1020 | | 1010 | | 1000 | +-------+ 3 rows in set (0.00 sec)
คำอธิบาย: ต้องใช้แบ็กทิก `index` ทุกครั้งที่อ้างอิงคอลัมน์นี้ (CREATE, INSERT, SELECT, WHERE, ORDER BY) มิฉะนั้นจะ Error: ERROR 1064 (42000): You have an error in your SQL syntax near 'index ...'
คำสงวนอื่นๆ ที่พบบ่อย: KEY, ORDER, GROUP, BY, SELECT, INSERT, UPDATE, DELETE, TABLE, DATABASE, INDEX, PRIMARY, UNIQUE, FOREIGN, REFERENCES, CHECK, CONSTRAINT, TRIGGER, VIEW, PROCEDURE, FUNCTION, EVENT ฯลฯ
แนวทางปฏิบัติ: ใช้แบ็กทิกห่อชื่อ Identifier ทุกตัวเสมอ (Table, Column, Database, Alias) เพื่อป้องกันปัญหาในอนาคต