我在Access 2007中启用了参照完整性。我想从客户表中删除客户记录,但希望将该特定客户的相关帐单详细信息保存在另一个名为bill表的表中。当我尝试删除客户记录时,我收到一条错误消息:“记录无法删除或更改,因为表'帐单'包含相关记录”。
答案 0 :(得分:2)
您不能双管齐下:您可以强制执行参照完整性,也可以在删除父记录时允许创建孤立子记录(即禁用参照完整性的强制执行)。
正如您对问题的评论所述,您可以将名为[Inactive]或[Deleted]的Yes/No
字段添加到父表中,然后使用仅考虑“有效”的查询“父记录,例如
SELECT * FROM [Customer] WHERE NOT [Inactive]
另一种可能性是拥有一个单独的“存档”数据库来存储已删除的项目。您将所有相关记录(父级和子级)复制到存档数据库,然后从主数据库中删除它们(先是子级,然后是父级)。