From: | Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar> |
---|---|
To: | mailreg(at)numerixtechnology(dot)de |
Cc: | pgsql-sql <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: CHECK col A not NULL if col B='x' |
Date: | 2004-09-28 14:12:02 |
Message-ID: | 200409281112.02986.martin@bugs.unl.edu.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
El Mar 28 Sep 2004 11:02, T E Schmitz escribió:
> Hello,
>
> Is it possible to set up a table CHECK, which ensures that column A is
> NOT NULL if column B = 'x' ?
CONSTRAINT constraint_name ]
CHECK (expression)
CHECK (expression)
The CHECK clause specifies an expression producing a Boolean result which new
or updated rows must satisfy for an insert or update operation to succeed. A
check constraint specified as a column constraint should reference that
column's value only, while an expression appearing in a table constraint may
reference multiple columns.
So I would say that it should be:
CONSTRAINT somename CHECK (B <> 'x' OR A IS NOT NULL)
(use a logical table to build the correct logical expression)
--
11:05:01 up 16 days, 1:23, 4 users, load average: 1.26, 0.70, 1.04
-----------------------------------------------------------------
Martín Marqués | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica | DBA, Programador, Administrador
Universidad Nacional
del Litoral
-----------------------------------------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander M. Pravking | 2004-09-28 14:15:04 | Re: CHECK col A not NULL if col B='x' |
Previous Message | Tom Lane | 2004-09-28 14:05:14 | Re: FOREIGN KEY and AccessExclusiveLock |