Re: possible to DELETE CASCADE?
От | Thomas Braad Toft |
---|---|
Тема | Re: possible to DELETE CASCADE? |
Дата | |
Msg-id | 41D456D0.7080509@magicx.dk обсуждение исходный текст |
Ответ на | possible to DELETE CASCADE? (Miles Keaton <mileskeaton@gmail.com>) |
Список | pgsql-general |
Miles Keaton wrote: > Is it possible for a query to delete a record and all of its > foreign-key dependents? > > I see DROP CASCADE, but not a DELETE CASCADE. > > What I'm trying to do: > I have a "clients" table. > I have many different tables that use the clients.id as a foreign key. > When I delete a client, I want it to delete all records in those many > different tables that reference this client. > > Right now I have my script passing many queries to delete them > individually. ("delete from history where client_id=?; delete from > payments where client_id=?" -- etc) You just have to use ON DELETE CASCADE on your foreign key definition in all the table which reference the client. See http://www.postgresql.org/docs/7.4/interactive/sql-createtable.html and look for FOREIGN KEY and ON DELETE CASCADE. That will have the effect you are looking for. If this is not enough you will have to create a trigger for the scenario. -- Thomas Braad Toft
В списке pgsql-general по дате отправления: