gpt4 book ai didi

sql - 表在 Postgres 中的强制参与关系

转载 作者:行者123 更新时间:2023-11-29 11:43:34 25 4
gpt4 key购买 nike

代表强制参与 Postgres 的最佳方式是什么?我曾经在 Sybase 中使用 CHECK 约束或使用 INSERT 和 DELETE TRIGGER 来完成它。 Postgres 不支持 CHECK 约束中的子查询,我无法正确触发。

我想找到以下替代方案:

ALTER TABLE member
ADD CONSTRAINT member_in_has_address
CHECK (EXISTS (SELECT *
FROM address a
WHERE member_id = a.member_id));

最佳答案

我使用可延迟约束触发器解决 1:m 强制关系。

逻辑是:

  • 插入父记录;这安排了触发器
  • 插入子记录,至少一个
  • promise

触发器在提交之前运行,如果它不喜欢它所看到的,可以通过引发异常来中止提交。

关于sql - 表在 Postgres 中的强制参与关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148621/

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