FOREIGN KEY 约束失败,SQLite

问题描述

我对数据库sqlite 还很陌生。我有一个提供给我的数据库,供 ASP.NET MVC Web 应用程序使用。我必须对专辑、曲目、艺术家和媒体类型实施 CRUD 操作。大多数功能已经实现并正常工作,但是,在为 tracks 表 实现删除操作时,我注意到一个错误,'[19:46:57] 从表轨道删除行时出错: FOREIGN KEY 约束失败'。

有人可以帮助我理解为什么我不能在不违反外键约束的情况下从 'tracks' 表中删除一行,以及它违反了哪个约束。

非常感谢任何帮助!

这是 ERD DiagramTracks Table StructureTracks Table ConstraintsSample Data 的屏幕截图。

解决方法

我认为您的问题是 trackinvoice_item 引用,也就是说您可能有 TrackID 的外键定义invoice_items 表的列引用 Tracks 表的 TrackId 列。

突出显示:-

enter image description here

关于评论

所有外键都有'ON UPDATE NO ACTION ON DELETE NO ACTION'

NO ACTION 是默认值,即在发生冲突时您不采取任何操作,因此冲突保持原样,从而导致错误。也许根据 https://sqlite.org/foreignkeys.html#fk_actions

考虑其他操作