SET CONSTRAINTS

指定约束检查行为的 SQL 命令

SET CONSTRAINTS 是一个用于在当前事务中设置约束检查行为的事务。

SET CONSTRAINTS 添加于 PostgreSQL 7.0

更改历史记录

示例

SET CONSTRAINTS 的基本用法示例,演示了如何将约束违规检查推迟到事务结束。

postgres=# CREATE TABLE foo (id INT UNIQUE DEFERRABLE, val TEXT);
CREATE TABLE

postgres=# INSERT INTO foo VALUES (1, 'hello');
INSERT 0 1

postgres=# BEGIN;
BEGIN

postgres=*# SET CONSTRAINTS foo_id_key DEFERRED;
SET CONSTRAINTS

postgres=*# INSERT INTO foo VALUES (1, 'world');
INSERT 0 1

postgres=*# COMMIT;
ERROR:  duplicate key value violates unique constraint "foo_id_key"
DETAIL:  Key (id)=(1) already exists.

如果在事务之外使用 SET CONSTRAINTS,则会发出警告。

postgres=# SET CONSTRAINTS foo_id_key DEFERRED;
WARNING:  SET CONSTRAINTS can only be used in transaction blocks
SET CONSTRAINTS

类别

SQL 命令事务命令事务

另请参阅

SET TRANSACTION

反馈

提交任何关于“SET CONSTRAINTS”的评论、建议或更正 此处