SQLite外键一域两表

时间:2019-04-01 15:05:08

标签: sqlite

我有餐桌产品:

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) values('prod1','1',10)

没有错误 但如果尝试

插入股票(codart,codvar,rkaesiste) values('prod1','',10)

获取

SqliteException:SQLite错误19:“ FOREIGN KEY约束失败”。

我会指出两张桌子,但我不知道是否可能 我该怎么办?

1 个答案:

答案 0 :(得分:0)

您将收到该错误,因为codvar是来自主表中的值的,因此空字符串值('')可能不起作用,因为它在主表中不存在。