Я смотрел на этот простой запрос 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, для правильного синтаксиса для использования рядом с 'unsigned int not null, minor_release_number unsigned int not null, point_rel' в строке 3
Что мне не хватает?
(Использование MySQL версии 5.1.73)
UNSIGNED
является атрибутом типа и должен появиться после имени типа: INT UNSIGNED
, а не UNSIGNED INT
.
Вы должны использовать 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