สาเหตุของข้อผิดพลาด
ข้อผิดพลาด ERROR 1064 (42000) เกิดขึ้นเมื่อใช้คีย์เวิร์ด TYPE เพื่อระบุ Storage Engine ใน MySQL เวอร์ชันใหม่:
mysql> CREATE TABLE DemoTable1836 (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20)
) TYPE=MyISAM AUTO_INCREMENT=1;
ERROR 1064 (42000): You have an error in your SQL syntax...
วิธีแก้ไข
ใน MySQL 5.5+ และ MySQL 8 ควรใช้ ENGINE แทน TYPE:
mysql> CREATE TABLE DemoTable1836 (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20)
) ENGINE=MyISAM AUTO_INCREMENT=1;
Query OK, 0 rows affected (0.00 sec)
ทดสอบการทำงาน
เพิ่มข้อมูลและตรวจสอบ:
mysql> INSERT INTO DemoTable1836(ClientName) VALUES('Chris');
mysql> INSERT INTO DemoTable1836(ClientName) VALUES('David');
mysql> INSERT INTO DemoTable1836(ClientName) VALUES('Mike');
mysql> INSERT INTO DemoTable1836(ClientName) VALUES('Sam');
mysql> SELECT * FROM DemoTable1836;
ผลลัพธ์:
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 1 | Chris |
| 2 | David |
| 3 | Mike |
| 4 | Sam |
+----------+------------+
ข้อสังเกตสำคัญ
TYPEถูก deprecated ตั้งแต่ MySQL 4.0 และถูกลบออกใน MySQL 5.5- ใช้
ENGINEเป็นมาตรฐานในปัจจุบัน - Storage Engine ยอดนิยม ได้แก่ InnoDB (ค่าเริ่มต้น), MyISAM, MEMORY