PDA

View Full Version : [PostgreSQL] Problema con Strutture di Controllo nelle Check


GiangiTerracina
20-10-2015, 13:13
Salve a tutti,
allora, per semplificare a morte diciamo che ho una tabella 'A' con due colonne 'a' e 'b' entrambe booleane.

Il problema nasce quando provo ad aggiungere un vincolo sulla tabella che mi verifichi che se 'a' vale true allora anche 'b' deve valere true, in particolare, se provo a fare:
ALTER TABLE A ADD CONSTRAINT c CHECK(IF a='t' THEN b='t');
ottengo un Syntax Error at or near 'a'

se provo a fare alternativamente:
ALTER TABLE A ADD CONSTRAINT c CHECK(b='t' WHERE a='t');
ottengo un Syntax Error at or near WHERE

Sarà magari una banalità ma non riesco proprio a capire dov'è che sbaglio?! ...la sintassi mi pare giusta...

GiangiTerracina
20-10-2015, 14:15
Trovato il problema, la CHECK ammette solo espressioni booleane pure, niente strutture di controllo.

Ho quindi risolto inserendo il vincolo:
ALTER TABLE A ADD CONSTRAINT c CHECK((b='f' AND a='t') != 't');