From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
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-28 22:14:15 |
Message-ID: | c2d9e70e0511281414m5b8ed807t11ad7d85ffeeba4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 11/28/05, Announce <truthhurts(at)insightbb(dot)com> 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?
>
> Thanks,
>
> -Aaron
>
CREATE TABLE animals(id primary key, name varchar, type varchar);
CREATE TABLE dogs (breed varchar) INHERITS (animals);
ALTER TABLE dogs ALTER COLUMN type SET DEFAULT 'DOG';
CREATE TABLE birds (bool hasFeathers) INHERITS (animals);
ALTER TABLE birds ALTER COLUMN type SET DEFAULT 'BIRD';
--
regards,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruno Wolff III | 2005-11-29 05:05:16 | Re: join if all matches |
Previous Message | Rod Taylor | 2005-11-28 21:57:55 | Re: DEFAULT Constraint based on table type? |