DEFAULT Constraint based on table type?

From: "Announce" <truthhurts(at)insightbb(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: DEFAULT Constraint based on table type?
Date: 2005-11-28 20:22:49
Message-ID: KBEKKNMFLELKGIADDEPEMEBPCDAA.truthhurts@insightbb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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?

Thanks,

-Aaron

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rod Taylor 2005-11-28 21:57:55 Re: DEFAULT Constraint based on table type?
Previous Message Frank Bax 2005-11-28 18:06:28 Re: Anual Query