Inheritance: delete parent deletes children

Поиск
Список
Период
Сортировка
От google.clp@alma.ch (M. I.)
Тема Inheritance: delete parent deletes children
Дата
Msg-id e6bd366.0210020251.1b0f3971@posting.google.com
обсуждение исходный текст
Ответы Re: Inheritance: delete parent deletes children  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Список 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

В списке pgsql-general по дате отправления:

Предыдущее
От: Hans-Jürgen Schönig
Дата:
Сообщение: Re: [HACKERS] Large databases, performance
Следующее
От: "Michael Paesold"
Дата:
Сообщение: Re: [HACKERS] Anyone want to assist with the translationof the Advocacy