我看过以前的帖子,但我正在努力弄清楚我哪里出错了。 我正在尝试使用此代码创建一个表:
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行置换'
非常感谢任何帮助。
答案 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
。