закрывающая скобка недопустима в этой позиции при создании таблицы - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь создать таблицу в MySQL Workbench, но она показывает ошибку:

"()" (закрывающая скобка) не является допустимым вводом в этой позиции при создании таблицы

В последней закрывающей скобке:

create table generics (
    idGen int unsigned not null auto_increment,
    nameGen nvarchar (255) not null,
    type_id int not null,
    id2 int not null,
    pk int not null,
    active bit not null,
    created_at datetime null,
    updated_at datetime null,
    created_by nvarchar(255) null,
    updated_by nvarchar(255) null,

    constraint primary key(idGen),
    constraint foreign key(type_id)
)

Я читал, что иногда это происходит, когда возникают проблемы при сохранении как UTF8 с BOM, но этот запрос еще не был сохранен,Кроме того, у меня никогда не было этой проблемы раньше, кроме того, я впервые работаю с nvarchar, так что idk, если это как-то связано с ним.

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

Для ограничения внешнего ключа отсутствует элемент ССЫЛКИ. Этот ключ должен указывать на первичный ключ в другой таблице.

FOREIGN KEY в MySQL создает связь между двумя таблицами одним конкретным столбцом обеих таблиц. Указанный столбец в одной таблице должен быть ПЕРВИЧНЫМ КЛЮЧОМ и указываться столбцом другой таблицы, известной как КЛЮЧЕВОЙ КЛЮЧ.

Пожалуйста, проверьте ниже для ссылки

create table generics1 (
    type_id int not null,
    constraint primary key(type_id)
    );

create table generics (
    idGen int unsigned not null auto_increment,
    nameGen nvarchar (255) not null,
    type_id int not null,
    id2 int not null,
    pk int not null,
    active bit not null,
    created_at datetime null,
    updated_at datetime null,
    created_by nvarchar(255) null,
    updated_by nvarchar(255) null,

    constraint primary key(idGen),
    constraint foreign key(type_id) REFERENCES generics1(type_id)
    );
0 голосов
/ 03 ноября 2019

Сделайте одну вещь: создайте таблицу, используя конструкторское представление в MySQL Workbench, затем экспортируйте эту таблицу как скрипт, вы получите способ написать таблицу, используя скрипт, затем внесите изменения в существующий скрипт, и эта ошибка пойдет. Надеюсь, это поможет

...