Re: DEFAULT Constraint based on table type?

From: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
To: Announce <truthhurts(at)insightbb(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: DEFAULT Constraint based on table type?
Date: 2005-11-29 10:31:58
Message-ID: 1133260318.10517.34.camel@linda.lfix.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Mon, 2005-11-28 at 14:22 -0600, Announce wrote:
> Lets say I have the following tables.
>
> CREATE TABLE animals(id primary key, name varchar, type varchar);
> CREATE TABLE dogs (breed varchar) INHERITS (animals);
> CREATE TABLE birds (bool hasFeathers) INHERITS (animals);
>
> Is there a way I can specify a default on the child table that will populate
> the 'type' column? For example, if I am inserting a row in table DOGS, I
> would always want the default value for column TYPE to be 'DOG'. If I am
> inserting into BIRDS.... type 'BIRD'.
>
> I know that I could add individual triggers on each table that set the TYPE
> field to a default value on insert but I wanted a more simple solution like
> setting a DEFAULT table-constraint.
>
> Also, In java, this could be done on a parent object by overriding a
> constructor or method, using the Class object or instanceof. Is there
> anyway for a table to "know" it's "class" in this scenario?

SELECT tableoid::regproc, * from animals;

--
Oliver Elphick olly(at)lfix(dot)co(dot)uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA
========================================
Do you want to know God? http://www.lfix.co.uk/knowing_god.html

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Oliver Elphick 2005-11-29 10:33:08 Re: DEFAULT Constraint based on table type?
Previous Message Bruno Wolff III 2005-11-29 05:05:16 Re: join if all matches