如何在postgresql中禁用检查约束

Ram*_*Ram 1 postgresql ddl check-constraints

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

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 
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

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

使用:

ALTER TABLE Employee_Salary_Details DROP CONSTRAINT CK_SAL;
Run Code Online (Sandbox Code Playgroud)

做你的事情,然后将其添加回来:

ALTER TABLE Employee_Salary_Details ADD CONSTRAINT CK_SAL CHECK (sal > 3500);
Run Code Online (Sandbox Code Playgroud)