小编Rad*_*tak的帖子

PostgreSQL中的延迟检查约束

我有功能检查强制参与如下:

CREATE FUNCTION member_in_has_address()
RETURNS BOOLEAN AS $$
BEGIN
RETURN EXISTS (SELECT *
       FROM address a, member_details b
       WHERE b.member_id = a.member_id);
END;
$$  LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

然后从CHECK约束调用

ALTER TABLE member_details
 ADD CONSTRAINT member_in_has_address_check
  CHECK (member_in_has_address());
Run Code Online (Sandbox Code Playgroud)

要在标准SQL中创建deferred约束,它将是:

ALTER TABLE member_details
 ADD CONSTRAINT member_in_has_address_check
  INITIALLY DEFERRED
  CHECK (member_in_has_address()); 
Run Code Online (Sandbox Code Playgroud)

我怎么能在PostgreSQL中做同样的事情?

sql postgresql deferred deferrable-constraint

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

deferrable-constraint ×1

deferred ×1

postgresql ×1

sql ×1