将约束添加到ALTER DOMAIN ERROR

时间:2017-12-04 11:08:28

标签: sql postgresql constraints alter

执行时:

ALTER DOMAIN public.remainingamount
    ADD CONSTRAINT "chk_remainingAmount" CHECK (remainingAmount > 0);

我在pgAdmin 4中收到了以下消息:

  

错误:列"剩余数量"不存在SQL状态:42703

该列存在。我可以在侧边栏中看到它!作为证据,当我执行以下行时:

ALTER DOMAIN public.remainingamount
    ADD CONSTRAINT "chk_remainingAmount" CHECK (remainingAmount > 0);

我收到消息:

  

错误:输入"剩余数量"已存在SQL状态:42710

如何向现有域添加新约束?

1 个答案:

答案 0 :(得分:0)

您可以在CHECK DOMAIN约束中使用的唯一变量是VALUE。假设基类型为money:

ALTER DOMAIN public.remainingamount
    ADD CONSTRAINT "chk_remainingAmount" CHECK (VALUE > 0::money);

the documentation:

  

检查(表达式)

     

(...)

     

目前,CHECK表达式不能包含子查询,也不能引用VALUE以外的变量。