使用Sqlite数据库,B表引用了A表的ID作为外键并设置了级联删除。

然而当删除A表中数据时,B表中的对应数据并未删除。

用户每次打开数据库时Sqlite都将外键默认设为关闭状态。

在对数据库执行删除或更新操作前,执行PROGMA foreign_keys = ON即可。

例如:

# 在python中对sqlite进行操作
def delete_record:
    conn = sqlite3.connect(database_dir)
    # database_dir 为数据库的存储路径+名称
    c = conn.cursor()
    c.execute("PRAGMA foreign_keys = ON")
    c.execute("DELETE * FROM USER WHERE ID == '1234'")
    conn.commit()
    conn.close()

文章参考自:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注