{unsigned int ..}附近的未知CREATE TABLE语法错误

时间:2018-07-26 23:04:06

标签: mysql create-table

我已经盯着这个简单的CREATE TABLE查询了20分钟,但我不知道为什么它会引发错误:

create table `schema_change` (
    `schema_change_id` unsigned int not null auto_increment,
    `major_release_number` unsigned int not null,
    `minor_release_number` unsigned int not null,
    `point_release_number` unsigned int not null,
    `script_name` varchar(100) not null,
    `date_applied` datetime not null,
    constraint `pk_schema_change` primary key (
        `schema_change_id`
    )
);

返回的错误是一个基本的语法错误,但我无法发现任何不正确的语法:

  

#1064-您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本以使用正确的语法   near'unsigned int not null,minor_release_number unsigned int not   null,point_rel'位于第3行

我想念什么?

(使用MySQL版本5.1.73)

2 个答案:

答案 0 :(得分:1)

UNSIGNED是一个类型属性,必须位于类型名称之后:INT UNSIGNED,而不是UNSIGNED INT

答案 1 :(得分:1)

您必须在类型之后使用unsigned,因为它会修改int

的类型。
create table `schema_change` (
    `schema_change_id` int unsigned auto_increment,
    `major_release_number` int unsigned not null,
    `minor_release_number` int unsigned not null,
    `point_release_number`  int unsigned not null,
    `script_name` varchar(100) not null,
    `date_applied` datetime not null,
    constraint `pk_schema_change` primary key (
        `schema_change_id`
    )
);

查看实际操作:http://sqlfiddle.com/#!9/685bf/1