USE raimohuybrechts;
CREATE TABLE UnitBase
(
Id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL UNIQUE CHARACTER SET utf8,
Description VARCHAR(1024) CHARACTER SET utf8,
ShippingCostMultiplier FLOAT,
Code VARCHAR(2) NOT NULL UNIQUE
);
错误是:
第4行:#1064 - 您的SQL语法出错;检查 手册,对应右边的MySQL服务器版本 语法使用' CHARACTER SET utf8,描述VARCHAR(1024) 字符集utf8,船舶'在第4行
无法弄清楚出了什么问题,因为我在第3行使用了完全相同的语法,并且它没有在那里给出错误。
答案 0 :(得分:1)
您可能希望在表级设置字符集。
但是如果你需要在列级别设置它,则列级CHARACTER SET
规范是data_type
的一部分,因此它需要先于其他修饰符,例如{{1} },NOT NULL
等
这应该有效:
UNIQUE
答案 1 :(得分:-2)
您无法将字符设置为UTF8到字段/列。
正确的字符串是:
CREATE TABLE UnitBase
(
Id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
Description VARCHAR(1024),
ShippingCostMultiplier FLOAT,
Code VARCHAR(2) NOT NULL UNIQUE
) ENGINE=InnoDB CHARACTER SET=utf8;