Netbeans выдает код ошибки -1, состояние SQL 42Z93 при попытке выполнить команду CREATE TABLE sql - PullRequest
0 голосов
/ 26 марта 2012

Вот что я пытаюсь выполнить:

CREATE TABLE "order" (
    "o_id" INTEGER not null primary key,
    "c_id" INTEGER,
    PRIMARY KEY (o_id),
    FOREIGN KEY (c_id) REFERENCES customer(c_id)
);

Получите эту ошибку при выполнении вышеупомянутой команды SQL:

Код ошибки -1, состояние SQL 42Z93: ограничения «SQL120326130633321» и «SQL120326130633320» имеют тот же набор столбцов, который не допускается.

Перед вышеупомянутой командой SQL я выполнил это:

CREATE TABLE "customer" (
    "c_id" INTEGER not null primary key,
    "c_first" VARCHAR(30),
    "c_last" VARCHAR(30)
);

EDIT (решение):

Кажется, я это исправил.

Во-первых, мне пришлось удалить PRIMARY KEY(o_id), поскольку он в основном повторял то, что я набрал в строке 2 команды SQL o_id INTEGER not null primary key, поэтому он жаловался, что я дважды пытался создать первичный ключ для одного и того же столбца.

Во-вторых, после того, как это было исправлено, появилась другая ошибка, сообщающая, что таблица CUSTOMER не может быть найдена. Возможно, проблема заключалась в том, что я использовал запятые ("...") вокруг имени таблицы "customer", когда CREATE TABLE пытался выполнить.

Я удалил таблицу 'customer' и заново создал ее, не используя кавычки в команде SQL.

После этого я выполнил «CREATE TABLE» для «заказов», и это сработало.

Странное различие заключается в том, что когда я использовал кавычки вокруг имени таблицы customer в SQL, сначала его имя отображалось в нижнем регистре в обозревателе баз данных Netbeans. Но когда я опустил кавычки, имена таблиц стали заглавными, даже имена столбцов.

1 Ответ

1 голос
/ 26 марта 2012

Вы добавляете ограничение первичного ключа дважды.Вам нужно только один раз, в одном или другом месте, в зависимости от поставщика БД.

...