字符集utf8给出语法错误

时间:2017-02-15 21:20:07

标签: mysql

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行使用了完全相同的语法,并且它没有在那里给出错误。

2 个答案:

答案 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;