当您想要删除包含所有基础数据的完整用户帐户时,如何处理约束?
我在某些表上使用RESTRICT ON DELETE
来保持一致性,但是当我想删除完整的用户帐户时,如何处理约束!?然后我得到Integrity constraint violation
在某些表上,我也使用CASCADE ON DELETE
所以我不能忽略所有约束
- 开始交易。
- 对于具有"打开删除限制"的每个表,删除正确的行。表格的顺序有时很重要;从离用户表"最远"的表开始。 (见下文。
- 然后删除该用户。在删除级联时应删除剩余的行。
- 提交事务。
当您有一个具有 ON DELETE RELIMITED 的表的"链"时,表的顺序很重要。
Table_N
Table_M references Table_N ON DELETE RESTRICT
Table_P references Table_M ON DELETE RESTRICT
您需要先从Table_P中删除,然后Table_M,然后Table_N。