Re: Conditional NOT NULL constraint

From: Richard Huxton <dev(at)archonet(dot)com>
To: Andreas Joseph Krogh <andreak(at)officenet(dot)no>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Conditional NOT NULL constraint
Date: 2007-02-28 11:07:39
Message-ID: 45E5627B.5090603@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Andreas Joseph Krogh wrote:
> Hi all!
> Is there a simple way to add a "NOT NULL constraint" to a column without using
> a trigger if another column is not null?
> Something like this:
>
> CREATE TABLE activity(
> id SERIAL primary key,
> name varchar not null,
> created timestamp not null default now(),
> modified timestamp,
> created_by integer not null,
> modified_by integer
> );
>
> alter table activity alter column modified_by set not null where modified is
> not null;
>
> I want a constraint which says: "modified_by not null if modified is not
> null".

Would a CHECK do? Something like:

ALTER TABLE activity ADD CONSTRAINT both_modified_set CHECK
((modified_by IS NULL AND modified IS NULL) OR (modified_by IS NOT NULL
AND modified IS NOT NULL))

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Andreas Joseph Krogh 2007-02-28 11:23:26 Re: Conditional NOT NULL constraint
Previous Message Richard Huxton 2007-02-28 11:05:40 Re: How to union table without union statement?