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

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to