gpt4 book ai didi

postgresql - 是否可以防止删除而不是插入外键?

转载 作者:行者123 更新时间:2023-11-29 12:06:58 24 4
gpt4 key购买 nike

我有两个表,我想用单列外键链接它们。正常的亲子类型的东西。我要解决的问题是系统的性质是 child 可以在 parent 存在之前到达( child 知道 parent 的 ID 是什么)。

我不想延迟等待父到达的 child 的插入,速度很重要。但我确实想要一些参照完整性 - 如果子项存在,我不希望能够删除父项。

我假设我无法在 Postgresql 中使用常规外键实现此目的?是写某种触发器的解决方案吗?

最佳答案

您可以使用“可延迟”约束来做到这一点。

create table child (parent_id integer references parent deferrable initially immediate);

然后您可以使用 set constraints在交易中暂时推迟这样的约束:

start transaction;
set constraints all deferred;
-- Your inserts go here --
commit;

关于postgresql - 是否可以防止删除而不是插入外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com