创建表时,MySQL ERROR 1064(42000)

时间:2015-12-27 18:15:57

标签: mysql

我看过以前的帖子,但我正在努力弄清楚我哪里出错了。 我正在尝试使用此代码创建一个表:

mysql> CREATE TABLE Engine
-> (
-> ID VARCHAR(255) UNASSSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
-> Name VARCHAR(255) NOT NULL,
-> Displacement VARCHAR(10) NOT NULL,
-> Code VARCHAR(10) NOT NULL,
-> PowerOutput VARCHAR(10),
-> MadeAt VARCHAR(255) NOT NULL,
-> PRIMARY KEY (ID),
-> FOREIGN KEY (MadeAt)
-> );

但是我反复收到这个错误:

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 'UNASSSIGNED NOT NULL AUTO_INCREMENT UNIQUE,

Name VARCHAR(255)NOT NULL, 在第3行置换'

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

尝试更改

ID VARCHAR(255) UNASSSIGNED NOT NULL AUTO_INCREMENT UNIQUE

成:

ID INT NOT NULL AUTO_INCREMENT

UNASSIGNED应为UNSIGNED,但没有必要对此进行定义,因为AUTO_INCREMENT默认情况下会从1开始,否则无法定义。 UNIQUE也是多余的,因为ID会增加,无论如何数字都是唯一的。

在大多数情况下,建议不要将VARCHAR用作PRIMARY KEY