【问题标题】:Delete user error in DSpace 6.2DSpace 6.2 中删除用户错误
【发布时间】:2017-11-24 16:00:59
【问题描述】:

我目前在使用 DSpace 6.2 时遇到错误。当我尝试删除用户时,出现以下错误:

错误:表“eperson”上的 UPDATE 或 DELETE 违反了表“resourcepolicy”的外键约束“resourcepolicy_eperson_id_fkey”详细信息:始终引用键 (uuid) = (c15fb835-a110-4df8-a409-84922a58cd6c)来自“资源策略”表。

【问题讨论】:

    标签: dspace


    【解决方案1】:

    resourcepolicy和表eperson之间存在外键约束

    这意味着resourcepolicy 中有一个列必须只包含其uuid 存在于eperson 表中的用户。如果您要删除 eperson 中的记录,那么这会破坏关系。

    您尚未包含您正在使用的确切删除语句,但使用 SQL 将您的删除级联到您使用 ON DELETE CASCADE 定义的其他表

    我不知道你在 DSpace 中是否有可用的 SQL 命令,但这个答案对 SQL server 有很好的解释: How do I use cascade delete with SQL Server?

    【讨论】:

    • 好的。我要去访问链接
    【解决方案2】:

    我已经通过这个链接解决了这个问题:How do I use cascade delete with SQL Server?。感谢斯潘根。 我已通过以下命令删除了外键: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;。 干杯。

    【讨论】:

    • 嗨@Arnaud KINNOUDO 我很高兴我的回答很有帮助。请您考虑投票和/或将其标记为已接受的答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多