首页 > 解决方案 > SQLite 错误外键不匹配 - 股票引用变体

问题描述

当我尝试从表 Products 中删除所有内容时,我在标题 SQLite Error 1 中收到错误消息:

外键不匹配 - “Stock”引用“Variants”

这是我的表格定义

CREATE TABLE Products ( Codart TEXT NOT NULL, Descri TEXT NOT NULL,...
CONSTRAINT PK_Products PRIMARY KEY(Codart) )

CREATE TABLE Variants ( Codart TEXT NOT NULL, Codvar TEXT NOT NULL, 
CONSTRAINT PK_Variants PRIMARY KEY(Codart, Codvar), 
CONSTRAINT FK_Products FOREIGN KEY (Codart) REFERENCES Products(Codart) ON DELETE CASCADE )

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

问题是当我尝试运行“从产品中删除”时出现上面的错误

标签: sqlite

解决方案


Stock,试试

CONSTRAINT FK_Variants FOREIGN KEY (Codart,Codvar) REFERENCES Variants(Codart,Codvar) ON DELETE CASCADE

推荐阅读