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

แก้ไข ERROR 1064 (42000) ขณะสร้างฐานข้อมูลใน MySQL

สาเหตุของ ERROR 1064 (42000)

ข้อผิดพลาดนี้เกิดจาก **Syntax Error** โดยเฉพาะเมื่อ:

  • ใช้ตัวอักษรพิเศษในชื่อฐานข้อมูล (เช่น ขีดกลาง -, ช่องว่าง)
  • ไม่ใช้ Backtick (`) ครอบชื่อที่มีตัวอักษรพิเศษ
  • Syntax ผิดปกติในคำสั่ง SQL

ตัวอย่างที่ทำให้เกิด Error

mysql> CREATE DATABASE customer-tracker;
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 '-tracker' at line 1

ตัวอักษร - ถูกตีความว่าเป็นตัวลบ (Minus Operator) ไม่ใช่ส่วนหนึ่งของชื่อ

วิธีแก้ไข

วิธี 1: ใช้ Backtick ครอบชื่อ (แนะนำ)

mysql> CREATE DATABASE `customer-tracker`;
Query OK, 1 row affected (0.21 sec)

วิธี 2: หลีกเลี่ยงตัวอักษรพิเศษ (Best Practice)

mysql> CREATE DATABASE customer_tracker;
Query OK, 1 row affected (0.18 sec)

วิธี 3: ไม่ใช้ Backtick (ถ้าชื่อไม่มีตัวพิเศษ)

mysql> CREATE DATABASE mydatabase;
Query OK, 1 row affected (0.15 sec)

กฎการตั้งชื่อใน MySQL (Identifier Rules)

อนุญาตไม่อนุญาต (ต้องใช้ Backtick)
อักษร, ตัวเลข, _ (underscore)ช่องว่าง, -, ., @, #, $, %, ^, &, *, (, )
ขึ้นต้นด้วยตัวเลขได้ (แต่ต้อง Backtick)คำสงวน (Reserved Words) เช่น SELECT, TABLE, INDEX

แนวทางปฏิบัติที่ดี (Best Practices)

  1. ใช้เฉพาะ a-z, 0-9, _ (lowercase + underscore)
  2. หลีกเลี่ยงคำสงวน (Reserved Keywords)
  3. ใช้ชื่อที่อธิบายความหมายได้ (Descriptive Names)
  4. ใช้ Backtick เสมอเพื่อความปลอดภัย: `table_name`