Inheritance: delete parent deletes children

From: google(dot)clp(at)alma(dot)ch (M(dot) I(dot))
To: pgsql-general(at)postgresql(dot)org
Subject: Inheritance: delete parent deletes children
Date: 2002-10-02 10:51:03
Message-ID: e6bd366.0210020251.1b0f3971@posting.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

I'm using inheritance in a way that may be wrong and would appreciate
comments.

In several tables, I want to have record creation and modification
times and user names.

So instead of repeating theses fields in all table definitions, I
created a logging table, which the others inherit:

CREATE TABLE "logging" (
"log_ct" timestamp(0) without time zone DEFAULT now(),
"log_mt" timestamp(0) without time zone DEFAULT now(),
"log_cu" character varying(20) DEFAULT "current_user"(),
"log_mu" character varying(20) DEFAULT "current_user"()
);

And then other tables like
CREATE TABLE some_table ( ... ) INHERITS (logging);

Fine, I have the logging fields in all other tables.

But I just realized that things actually go into that "logging" table,
not into the child tables. I wonder how the database knows which row
in logging is related to which row in a child table.

Also, I noticed that if I delete a record in the parent table, the
child is also deleted!! This sounds bad!

Is it just a bad idea to use inheritance for this (should I simply
repeat the fields in the definitions of all tables that need them?),
or is there just a detail I should correct? Or is that all fine as
long as I don't accidentally delete records in the parent table?

Thank you for your comments.

Mi

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Justin Clift 2002-10-02 11:01:56 Re: [GENERAL] New PostgreSQL Website : advocacy.postgresql.org
Previous Message Martijn van Oosterhout 2002-10-02 10:47:36 Re: howto get column names of tables in a script..