use*_*760 10 postgresql constraint
说我有一个约束
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5);
Run Code Online (Sandbox Code Playgroud)
需要修改,以便邮政编码长度为6
.
我是否zipchk
先删除约束然后重新创建它?
ALTER TABLE distributors DROP CONSTRAINT zipchk;
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 6);
Run Code Online (Sandbox Code Playgroud)
或者是否有MODIFY
(类似)命令:
ALTER TABLE distributors MODIFY CONSTRAINT zipchk CHECK (char_length(zipcode) = 6);
Run Code Online (Sandbox Code Playgroud)
Erw*_*ter 28
总结一下评论:
像@ypercube暗示,你可以做一个单一的命令,这是更便宜,更安全:
ALTER TABLE distributors
DROP CONSTRAINT zipchk
, ADD CONSTRAINT zipchk CHECK (length(zipcode) = 6);
Run Code Online (Sandbox Code Playgroud)
ALTER CONSTRAINT
在 Postgres 9.4 或更高版本(如您所见)中只能更改 FK 约束的“可延迟性”。所以不是你要找的。除此之外,没有MODIFY
用于约束的“ (like)命令”(MODIFY
我假设是指MySQL )。
手册中的ALTER TABLE
详细信息,例如提到的@a_horse。
归档时间: |
|
查看次数: |
21256 次 |
最近记录: |