Вот что я пытаюсь выполнить:
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. Но когда я опустил кавычки, имена таблиц стали заглавными, даже имена столбцов.