当使用Python 3和SQLite3时,在执行时cursor.execute("DELETE FROM my_table WHERE my_column IS NULL;"),我收到错误sqlite3.IntegrityError: FOREIGN KEY constraint failed即使我connection.execute("PRAGMA foreign_keys = ON;")在那之前就这样做了。是否设置不能foreign_keys保证ON其他表中具有引用已my_table删除行的外键列的行也被删除,从而防止发生此错误,或者我是否误解了 的功能PRAGMA foreign_keys?
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
my_table
您是否在其他表中定义了使用操作引用列的列ON DELETE CASCADE
,例如:
columnInOtherTable INTEGER REFERENCES my_table(columnInMyTable) ON DELETE CASCADE
如果是,那么您的代码应该可以工作,除非下面还有与级联删除相关的其他级别。
如果没有,那么你应该这样做。
这是ON DELETE CASCADE
强制删除引用行的操作。
当然PRAGMA foreign_keys
必须是ON
。
添加回答
举报
0/150
提交
取消