Sqlite внешний ключ одно поле две таблицы - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть таблица product:

codart
p1  
p2

таблица вариантов (хранить только продукт с вариантом):

codart-codvar
p3 -    1
p3 -    2
p4 -    1

У меня также есть такая таблица запасов

codart-codvar-qty
p1    -      -100
p4    - 1    -100

определение таблицы

CREATE TABLE Stock ( Codart text NOT NULL, Codvar text NOT NULL, Qty real NOT NULL, CONSTRAINT FK_Variants FOREIGN KEY(Codart,Codvar) REFERENCES Variants(Codart,Codvar) ON DELETE CASCADE, CONSTRAINT FK_Products FOREIGN KEY(Codart) REFERENCES Products(Codart) ON DELETE CASCADE, CONSTRAINT PK_Stock PRIMARY KEY(Codart,Codvar) )

Если я вставляю товар с таким вариантом, как

вставлять в сток (codart, codvar, rkaesiste) значения ('prod1', '1', 10)

без ошибок, но при попытке

вставить в сток (codart, codvar, rkaesiste) значения ('prod1', '', 10)

get

SqliteException: ошибка SQLite 19: «Сбой ограничения FOREIGN KEY».

Я хотел бы указать две таблицы, но я не знаю, если это возможно, что я могу сделать?

1 Ответ

0 голосов
/ 01 апреля 2019

Вы получите эту ошибку, потому что codvar подразумевается из значений, которые находятся в первичной таблице, поэтому пустое строковое значение ('') может не работать, потому что оно не существует в первичной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...