首页 > 解决方案 > 如何在 postgresql 中禁用检查约束

问题描述

我有下表,其中包含薪金列的检查约束。我想暂时禁用检查约束。如何禁用和启用检查约束?

CREATE TABLE "Employee_Salary_Details"(
  empno int,
  ename varchar(100),
  sal numeric CONSTRAINT CK_SAL CHECK(sal>3500)
)

INSERT INTO "Employee_Salary_Details" VALUES(101,'RAM',200);

ALTER TABLE "Employee_Salary_Details" DISABLE  CONSTRAINT CK_SAL 

我试过了,但它显示一条错误消息。是否可以禁用和启用 heck 约束?

标签: postgresqlddlcheck-constraints

解决方案


是否可以禁用和启用检查约束?

不,那是不可能的。您需要删除并重新创建它。

利用:

ALTER TABLE Employee_Salary_Details DROP CONSTRAINT CK_SAL;

做你的事,然后把它加回来:

ALTER TABLE Employee_Salary_Details ADD CONSTRAINT CK_SAL CHECK (sal > 3500);

推荐阅读