SQLite 浏览器“表修改后检查外键时出错。更改将被还原。”

问题描述 投票:0回答:1

我有一个包含表

albums
songs
的数据库,如下所示:

专辑:

歌曲:

我想让表相关,wtih

albums
是父母和
songs
是孩子,所以我试图将
songs
中的 albumsId 列变成外键 但它总是给我前面提到的“修改表后检查外键时出错”。我在两个表中都有几个测试条目,可能是这种情况吗?

sqlite
1个回答
0
投票

如果您转到

Edit Pragmas
并取消选中
Foreign keys
选项,那么数据库将停止检查外键约束。这将允许您添加外键约束而不会产生错误——然后您可以重新打开外键 pragma 以启用检查任何未来的修改(例如行插入)。

如果你这样做,你仍然需要检查你现有的表/数据是否满足外键约束。为此,请选择

Tools
>
Foreign-Key Check
。这将生成一个表,显示任何外键违规,如果可以的话,你应该修复它。

© www.soinside.com 2019 - 2024. All rights reserved.