我目前遇到DSpace 6.2的错误。当我尝试删除用户时,我收到以下错误:
错误:更新或删除表格" eperson"违反外键约束" resourcepolicy_eperson_id_fkey"表" resourcepolicy"细节:密钥(uuid)=(c15fb835-a110-4df8-a409-84922a58cd6c)始终从表格中引用" resourcepolicy"。
答案 0 :(得分:0)
表resourcepolicy
和表eperson
这意味着resourcepolicy
中的列只能包含eperson
表中存在uuid的用户。如果您要删除eperson中的记录,那么这将破坏关系。
您还没有包含您正在使用的确切删除语句,但是使用SQL将您的删除级联到您使用ON DELETE CASCADE
定义表的其他表
我不知道您是否在DSpace中可以使用SQL命令,但这个答案对SQL服务器有很好的解释: How do I use cascade delete with SQL Server?
答案 1 :(得分:0)
我通过以下链接解决了问题:How do I use cascade delete with SQL Server?。感谢Spangen。 我已通过此命令删除了外键: ALTER TABLE ONLY" resourcepolicy" DROP CONSTRAINT resourcepolicy_eperson_id_fkey; 我已通过以下命令重新创建它: ALTER TABLE ONLY" resourcepolicy" ADD CONSTRAINT resourcepolicy_eperson_id_fkey FOREIGN KEY(eperson_id)REFERENCES eperson(uuid)ON DELETE CASCADE; 。 欢呼声。