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
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 |