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,将发出一个 WARNING 警告

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

分类

SQL 命令, 事务命令, 事务

另请参阅

SET TRANSACTION

反馈

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