Как вставить несколько внешних ключей в браузере БД для SQLite (GUI) - PullRequest
0 голосов
/ 27 апреля 2020

Я использую SQLite и DB Browser для SQLite. Я знаю, что если вы хотите вставить внешний ключ, используя GUI, вам просто нужно прокрутить вправо и дважды щелкнуть, чтобы вставить внешний ключ в соответствующее поле. Проблема в том, когда вы хотите использовать несколько внешних ключей. Как или где я должен поместить ограничение нескольких внешних ключей, используя GUI? мой фактический sql (возвращает исключение 'несоответствие внешнего ключа - "болезни', ссылающиеся на" ульи "... '):

CREATE TABLE "diseases" (
"id"    INTEGER NOT NULL,
"id_beehive"    INTEGER NOT NULL,
"id_apiary" INTEGER NOT NULL,
"disease"   TEXT NOT NULL,
"treatment" TEXT NOT NULL,
"start_treat_date"  DATE NOT NULL,
"end_treat_date"    DATE,
PRIMARY KEY("id"),
FOREIGN KEY("id_beehive") REFERENCES "beehives"("number") ON UPDATE CASCADE,
FOREIGN KEY("id_apiary") REFERENCES "beehives"("id_apiary") ON UPDATE CASCADE
);

что я хочу сделать с помощью gui:"

CREATE TABLE "diseases" (
"id"    INTEGER NOT NULL,
"id_beehive"    INTEGER NOT NULL,
"id_apiary" INTEGER NOT NULL,
"disease"   TEXT NOT NULL,
"treatment" TEXT NOT NULL,
"start_treat_date"  DATE NOT NULL,
"end_treat_date"    DATE,
PRIMARY KEY("id"),
FOREIGN KEY("id_beehive","id_apiary") REFERENCES "beehives"("number","id_apiary") ON UPDATE CASCADE
);

ульи sql:

CREATE TABLE "beehives" (
"number"    INTEGER NOT NULL,
"id_apiary" INTEGER NOT NULL DEFAULT -2,
"date"  DATE,
"type"  TEXT,
"favorite"  BOOLEAN DEFAULT 'false',
PRIMARY KEY("number","id_apiary"),
FOREIGN KEY("id_apiary") REFERENCES "apiaries"("id") ON DELETE SET NULL
);
...