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

การใช้ Backticks กับคำสงวน match ใน MySQL

ใน MySQL คำว่า match เป็นคำสงวน (reserved word) หากใช้เป็นชื่อตารางหรือคอลัมน์ต้องล้อมรอบด้วย backticks (`) ไม่ใช่ single quotes (')

ข้อผิดพลาดที่พบ

mysql> select *from match; 
ERROR 1064 (42000) : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match' at line 1

วิธีแก้ไข: ใช้ Backticks

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

เพิ่มข้อมูล (ใช้ backticks ทุกครั้งที่อ้างอิงตาราง)

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)

แสดงข้อมูล

mysql> select *from `match`;

ผลลัพธ์:

+----+------------+
| Id | PlayerName |
+----+------------+
|  1 | Chris      |
|  2 | Bob        |
|  3 | David      |
|  4 | Mike       |
|  5 | Sam        |
+----+------------+
5 rows in set (0.00 sec)

แนวทางปฏิบัติที่ดี

  • ใช้ backticks (`) สำหรับ identifier ทั้งหมด (ชื่อตาราง คอลัมน์ ฯลฯ) เพื่อหลีกเลี่ยงปัญหากับคำสงวน
  • MySQL มีคำสงวนมากมาย เช่น select, where, order, group, match, key, index ฯลฯ
  • สามารถดูรายการคำสงวนได้จากเอกสาร MySQL อย่างเป็นทางการ