我在SQLite数据库上有2个表
CREATE TABLE [Stores] (
[ID] NVARCHAR(50),
[Description] NVARCHAR(255),
[GUID] CHAR(36),
[Created] DATETIME,
[Modified] DATETIME,
[Integrated] DATETIME,
CONSTRAINT [] PRIMARY KEY ([ID]));
CREATE TABLE [PriceDef] (
[PriceNumber] INTEGER,
[Store] NVARCHAR(50) REFERENCES [Stores]([ID]) ON DELETE CASCADE ON UPDATE CASCADE,
[Description] NVARCHAR(50),
[Margin] DECIMAL,
[GUID] CHAR(36),
[Created] DATETIME,
[Modified] DATETIME,
[Integrated] DATETIME,
CONSTRAINT [] PRIMARY KEY ([PriceNumber], [Store]));
当我尝试删除Stores表中的一行时,我收到一条带有此消息的异常:外键不匹配,此时我只有表外存的这个外键。
请帮助:(
提前致谢 PedroSimões。
感谢Mitch,Yar和Tim的回答/评论,实际上很多时间过去了,我的应用程序处于更加先进的状态,问题解决了,就像Tim说的那样,所有实体都被启用/禁用所以我不再需要删除东西了。
答案 0 :(得分:2)
正如我在评论中写道:我遇到了类似的问题。
问题出在子表中的其他列外键约束而不是“删除级联”本身。
在你的情况下:你确定你的一个表(很可能是一个表)没有参与其他一些外键约束吗?
看起来SQLite在启动其中一个时检查所有约束。它实际上在文档中提到过。 DDL与DML约束检查。