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

MySQL Error: ใช้ 'group' เป็นชื่อตาราง ต้องใช้ Backticks (`)

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

ปัญหาและวิธีแก้

❌ ผิด: ไม่ใช้ Backticks

CREATE TABLE group (...);  -- ERROR 1064

✅ ถูกต้อง: ใช้ Backticks ครอบชื่อตาราง

CREATE TABLE `group` (...);  -- OK

ตัวอย่างครบถ้วน

1. สร้างตารางชื่อ `group`

mysql> CREATE TABLE `group` (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);
Query OK, 0 rows affected (1.26 sec)

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

mysql> INSERT INTO `group`(Name) VALUES('Chris');
Query OK, 1 row affected (0.47 sec)
mysql> INSERT INTO `group`(Name) VALUES('David');
Query OK, 1 row affected (0.36 sec)
mysql> INSERT INTO `group`(Name) VALUES('Mike');
Query OK, 1 row affected (0.26 sec)
mysql> INSERT INTO `group`(Name) VALUES('Sam');
Query OK, 1 row affected (0.16 sec)

3. Query ข้อมูล

mysql> SELECT * FROM `group`;
+----+-------+
| Id | Name  |
+----+-------+
|  1 | Chris |
|  2 | David |
|  3 | Mike  |
|  4 | Sam   |
+----+-------+

คำสงวน (Reserved Keywords) ที่พบบ่อย

ดูรายการเต็มได้ที่ MySQL Reserved Keywords

Best Practice

  • หลีกเลี่ยง การใช้คำสงวนเป็น Identifier (ชื่อตาราง, คอลัมน์, อินเด็กซ์, อาเลียส)
  • หากบังคับต้องใช้ ให้ ใช้ Backticks (`) ครอบเสมอ ในทุก Query
  • ตั้งชื่อให้มีความหมายและไม่ชนคำสงวน เช่น user_groups, order_items, group_name

สรุป

คำว่า group เป็น Reserved Keyword ต้องใช้ Backticks (`group`) ทุกครั้งที่อ้างอิง ไม่เช่นนั้นจะเกิด Syntax Error แนะนำให้หลีกเลี่ยงการใช้คำสงวนเป็นชื่อ Identifier ตั้งแต่แรก

คำสงวนคำสงวนคำสงวน
GROUPORDERSELECT
FROMWHERETABLE
INDEXKEYPRIMARY
REFERENCESCHECKCONSTRAINT
USERDATABASEFUNCTION