Re: Creating constraint dynamically

From: "sivapostgres(at)yahoo(dot)com" <sivapostgres(at)yahoo(dot)com>
To: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Creating constraint dynamically
Date: 2022-08-22 07:29:01
Message-ID: 129838278.823301.1661153341365@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,Using PG 11.4
We populate constraint string dynamically and add it to the table with alter table command.  It gets added, but without the required brackets.  What we build isALTER TABLE public.tx_barcode_stock ADD CONSTRAINT "tx_barcode_stock_CK1" CHECK ( (branchcode = '1'::bpchar  and barcodeitem = 'Y'::bpchar and closingstock >= 0::numeric)  Or (branchcode = '1' and barcodeitem = 'N'::bpchar and closingstock >= 0::numeric )  Or (branchcode = '2'::bpchar  and barcodeitem = 'Y'::bpchar and closingstock >= 0::numeric)  Or (branchcode = '2' and  barcodeitem = 'N'::bpchar and closingstock >= 0::numeric ) ) NOT VALID; 
After creation, when we check what we find is  [ in PgAdmin ]ALTER TABLE public.tx_barcode_stock    ADD CONSTRAINT "tx_barcode_stock_CK1" CHECK (branchcode::bpchar = '1'::bpchar AND barcodeitem = 'Y'::bpchar AND closingstock >= 0::numeric OR branchcode::text = '1'::text AND barcodeitem = 'N'::bpchar AND closingstock >= 0::numeric OR branchcode::bpchar = '2'::bpchar AND barcodeitem = 'Y'::bpchar AND closingstock >= 0::numeric OR branchcode::text = '2'::text AND barcodeitem = 'N'::bpchar AND closingstock >= 0::numeric)    NOT VALID;
We have only one bracket, in the final updated one.
Since there are AND and OR conditions, without brackets the whole conditions becomes useless.  
How to create a constraint like the above one, with braces in tact ?   Or any other way that we can implement a check constraint as above?
Happiness Always
BKR Sivaprakash

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Wim Bertels 2022-08-22 07:39:14 Re: Creating constraint dynamically
Previous Message Wim Bertels 2022-08-22 07:17:09 Re: Can I get the number of results plus the results with a single query?