gpt4 book ai didi

sql - 入境验证?

转载 作者:行者123 更新时间:2023-11-29 13:30:54 24 4
gpt4 key购买 nike

我什至不确定如何为这个问题命名。我仍然是数据库的新手。这是我的情况。

我有一个交集表,

相交(foo_id, bar_id)

foo(foo_id, alpha_fk)

bar(bar_id, alpha_fk)

阿尔法(alpha_id)

当我将 (foo_id, bar_id) 插入相交表时,我需要确保 foo.alpha_pk = bar.alpha_pk 对于给定的 foo_id 和 bar_id。

我不太确定验证这一点的最佳方法。感谢您的协助!

最佳答案

创建一个 bool 函数,返回 alpha_fk 是否与给定的 foo_id 和 bar_id 匹配:

CREATE OR REPLACE FUNCTION check_intersections_fooequalsbar(foo_id integer, bar_id integer)
RETURNS boolean AS
$$
SELECT (f.alpha_fk = b.alpha_fk)
FROM foo f
LEFT JOIN bar b ON b.bar_id = $2
WHERE f.foo_id = $1 FOR UPDATE
$$
LANGUAGE 'plpgsql'

然后在约束中将函数应用于相交表

ALTER TABLE intersect
ADD CONSTRAINT check_intersections_fooequalsbar CHECK
(check_intersections_fooequalsbar(foo_id, bar_id))

关于sql - 入境验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750328/

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