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

แก้ไข MySQL ERROR 1064 (42000) Syntax Error ใกล้เครื่องหมาย ')'

สาเหตุและวิธีแก้ ERROR 1064 ใกล้ ')'

Error นี้มักเกิดจาก Comma (,) คงอยู่ท้ายคอลัมน์สุดท้าย ในคำสั่ง CREATE TABLE

โค้ดที่ผิด (มี Comma ท้ายคอลัมน์ event)

mysql> CREATE TABLE DemoTable1492 (
    -> timestamp TIMESTAMP,
    -> event INT,
    -> );  -- <-- Comma ค้างอยู่ที่นี่!
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 5

โค้ดที่ถูกต้อง (ลบ Comma ท้ายออก)

mysql> CREATE TABLE DemoTable1492 (
    -> timestamp TIMESTAMP,
    -> event INT
    -> );
Query OK, 0 rows affected (0.44 sec)

ทดสอบ INSERT และ SELECT

mysql> INSERT INTO DemoTable1492 VALUES(NOW(), 101);
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO DemoTable1492 VALUES(NOW() + INTERVAL 3 MONTH, 102);
Query OK, 1 row affected (0.14 sec)

mysql> SELECT * FROM DemoTable1492;
+---------------------+-------+
| timestamp           | event |
+---------------------+-------+
| 2019-10-06 10:56:53 |   101 |
| 2020-01-06 10:57:07 |   102 |
+---------------------+-------+

สาเหตุอื่นๆ ที่ทำให้เกิด ERROR 1064

สาเหตุตัวอย่างแก้ไข
Comma คงท้ายคอลัมน์สุดท้ายcol INT,ลบ Comma ออก
ใช้ Reserved Word เป็นชื่อคอลัมน์/ตารางCREATE TABLE select (id INT)ใช้ Backtick: CREATE TABLE \`select\` (id INT)
Syntax ผิดในคำสั่งซับซ้อนJOIN, SUBQUERY ผิดรูปแบบตรวจสอบวงเล็บ, คีย์เวิร์ด, คอมมา
Quote ผิด (Smart quotes)'value' (curly quotes)ใช้ Straight quotes: 'value'

เคล็ดลับการ Debug

  • อ่านข้อความ Error: near ')' บอกตำแหน่งประมาณ
  • ตรวจสอบบรรทัดก่อนและหลังตำแหน่งที่ Error บอก
  • ใช้ IDE/Editor ที่มี Syntax Highlighting (VS Code, DataGrip, Workbench)
  • แบ่งคำสั่งยาวเป็นหลายบรรทัดเพื่ออ่านง่าย