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

ใช้คำสงวน (Reserved Word) 'table' เป็นชื่อตารางใน MySQL ด้วย Backticks

บทความนี้สาธิตปัญหาการใช้คำสงวนของ MySQL (Reserved Keyword) เป็นชื่อตาราง และวิธีแก้ไขด้วย Backticks (`)

ลองสร้างตารางชื่อ 'table' (จะ Error)

mysql> CREATE TABLE table(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
ERROR 1064 (42000): You have an error in your SQL syntax...

แก้ไขด้วย Backticks

mysql> CREATE TABLE `table`(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.81 sec)

ใช้งานตาราง `table` (ต้องใช้ Backticks ทุกครั้ง)

mysql> INSERT INTO `table`(FirstName) VALUES('Chris');
mysql> INSERT INTO `table`(FirstName) VALUES('Robert');
mysql> INSERT INTO `table`(FirstName) VALUES('David');
mysql> INSERT INTO `table`(FirstName) VALUES('Mike');

mysql> SELECT * FROM `table`;

ผลลัพธ์

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
| 3  | David     |
| 4  | Mike      |
+----+-----------+

คำอธิบาย:

  • Backticks (`) ใช้ Escape Identifier (ชื่อตาราง, คอลัมน์, ฐานข้อมูล) ที่เป็น Reserved Word หรือมีอักขระพิเศษ
  • คำสงวนทั่วไป: TABLE, SELECT, INSERT, UPDATE, DELETE, WHERE, ORDER, GROUP, BY, INDEX, KEY, PRIMARY, REFERENCES, ...
  • Best Practice: หลีกเลี่ยงการใช้ Reserved Word เป็นชื่อ ตั้งชื่อให้มีความหมายและไม่ซ้ำ Keyword
  • ใน MySQL สามารถตั้งค่า sql_mode=ANSI_QUOTES ให้ใช้ Double Quotes (") แทน Backticks ได้