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
|
Список | 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 по дате отправления: