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

แก้ไข Error #1064 ใน MySQL: การใช้ ENGINE แทน TYPE

สาเหตุของข้อผิดพลาด

ข้อผิดพลาด 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