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