สาเหตุและวิธีแก้ไข Error 1064 ใน MySQL
Error #1064 (42000) เกิดจาก **Syntax Error** หรือไวยากรณ์ SQL ผิดพลาด สาเหตุที่พบบ่อยคือ **คอมม่า (,) ค้างอยู่ท้ายฟิลด์สุดท้าย** ในคำสั่ง CREATE TABLE
ตัวอย่างที่ผิด (มีคอมม่าค้างท้ายบรรทัด isMarried)
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(100),
UserAge INT,
UserAddress VARCHAR(200),
UserCountryName VARCHAR(100),
isMarried BOOLEAN, -- <-- คอมม่าค้างตรงนี้
);
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 ')' at line 10
ตัวอย่างที่ถูกต้อง (ลบคอมมาท้ายออก)
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(100),
UserAge INT,
UserAddress VARCHAR(200),
UserCountryName VARCHAR(100),
isMarried BOOLEAN -- ไม่มีคอมม่าท้าย
);
Query OK, 0 rows affected (1.04 sec)
สาเหตุอื่นๆ ที่ทำให้เกิด Error 1064
- ใช้คำสำรอง (Reserved Words) เป็นชื่อตาราง/คอลัมน์โดยไม่ห่อด้วยแบ็กทิก (
`) - ขาดเครื่องหมายคำพูดหรือวงเล็บ
- ชนิดข้อมูลเขียนผิด (เช่น
VARCHATแทนVARCHAR) - ลำดับคีย์เวิร์ดผิด (เช่น ใส่
DEFAULTก่อนNOT NULL)
เคล็ดลับการแก้ไข
- อ่านข้อความ Error ให้ดี - จะบอกตำแหน่งประมาณว่าผิดที่ไหน (
near ')' at line 10) - ตรวจสอบบรรทัดที่ระบุและบรรทัดก่อนหน้า
- ใช้ IDE หรือ Editor ที่มี Syntax Highlighting ช่วยดูง่ายขึ้น
- ทดสอบคิวรี่ทีละส่วนถ้าคำสั่งซับซ้อน