Неизвестная синтаксическая ошибка CREATE TABLE рядом с «unsigned int ..»

0

Я смотрел на этот простой запрос 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)

Теги:
create-table

2 ответа

1
Лучший ответ

UNSIGNED является атрибутом типа и должен появиться после имени типа: INT UNSIGNED, а не UNSIGNED INT.

  • 0
    Ага. Знал, что это будет что-то чрезвычайно простое. Ура!
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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню