即使foreign_keys 为ON,FOREIGN KEY 约束也会失败

当使用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


温温酱
浏览 165回答 1
1回答

大话西游666

my_table您是否在其他表中定义了使用操作引用列的列ON DELETE CASCADE,例如:columnInOtherTable INTEGER REFERENCES my_table(columnInMyTable) ON DELETE CASCADE如果是,那么您的代码应该可以工作,除非下面还有与级联删除相关的其他级别。如果没有,那么你应该这样做。这是ON DELETE CASCADE强制删除引用行的操作。当然PRAGMA foreign_keys必须是ON。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python