| From: | "Alexander M(dot) Pravking" <fduch(at)antar(dot)bryansk(dot)ru> |
|---|---|
| To: | T E Schmitz <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:15:04 |
| Message-ID: | 20040928141504.GA17595@dyatel.antar.bryansk.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
On Tue, Sep 28, 2004 at 03:02:02PM +0100, T E Schmitz wrote:
> Hello,
>
> Is it possible to set up a table CHECK, which ensures that column A is
> NOT NULL if column B = 'x' ?
Sure.
fduch(at)~=# CREATE TABLE test (
fduch(at)~(# a integer check (case when b = 'x' then a is not null else true end),
fduch(at)~(# b text);
CREATE TABLE
fduch(at)~=# INSERT INTO test VALUES (null, '123');
INSERT 107538 1
fduch(at)~=# INSERT INTO test VALUES (null, 'x');
ERROR: new row for relation "test" violates check constraint "test_a"
fduch(at)~=# INSERT INTO test VALUES (1, 'x');
INSERT 107539 1
--
Fduch M. Pravking
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-09-28 14:24:16 | Re: Best way to know if there is a row |
| Previous Message | Martin Marques | 2004-09-28 14:12:02 | Re: CHECK col A not NULL if col B='x' |