2017-12-04 23 views
0

을 변경 : ADD 제약 도메인 ERROR

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

난 pgAdmin 4 다음 메시지 recevied :

ERROR: column "remainingamount" does not exist SQL state: 42703

컬럼이 존재한다. 사이드 바에서 볼 수 있습니다! 내가 행 다음에 테 실행할 때 증거로, :

ERROR: type "remainingamount" already exists SQL state: 42710

가 어떻게 기존 도메인에 새 제약 조건을 추가 할 수 있습니다

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

나는 메시지가 나타납니다?

+0

당이라고 가정. 문제가 아닌 경우 도메인 정의를 표시하고 동일한 문에 대해 다른 오류 메시지가 나타나기는 쉽지 않으므로 질문을 수정하십시오. –

답변

0

CHECK 제약 조건 인 DOMAIN에서 사용할 수있는 유일한 변수는 VALUE입니다. 기본 유형은 당신이 remainingAmount``큰 따옴표를 잊었 money:

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

매우 가능성이 the documentation:

CHECK (expression)

(...)

Currently, CHECK expressions cannot contain subqueries nor refer to variables other than VALUE.

+0

ERROR : 연산자가 존재하지 않습니다. money> integer 힌트 : 주어진 이름 및 인수 유형과 일치하는 연산자가 없습니다. 명시 적 타입 캐스트를 추가해야 할 수도 있습니다. SQL 상태 : 42883 –

+0

오류 메시지에 명확하게 표시되는 작업 ... 업데이트 된 답변을 참조하십시오. – klin