Les suppressions en cascade dans PostgreSQL

J'ai une base de données avec quelques dizaines de tables imbriquées avec les clés étrangères. Dans des circonstances normales, je veux que le défaut ON DELETE RESTRICT comportement de ces contraintes. Mais lorsque j'essaie de partager un instantané de la base de données avec un consultant, j'ai besoin de supprimer des données sensibles. Je souhaite que mon mémoire d'un DELETE FROM Table CASCADE commande n'avait pas été en pure hallucination.

Ce que j'ai à faire, cela a été un dump de la base de données, l'écriture d'un script pour traiter le dump en ajoutant ON DELETE CASCADE clauses aussi toutes les contraintes de clés étrangères, de la restauration, l'exécution de mon supprime, le dumping de nouveau, le retrait de la ON DELETE CASCADE, et enfin la restauration de nouveau. C'était plus facile que d'écrire la suppression de la requête que j'avais eu besoin de le faire en SQL -- suppression de l'ensemble des tranches de la base de données n'est pas un fonctionnement normal, de sorte que le schéma n'est pas exactement adaptés.

Quelqu'un aurait-il une meilleure solution pour la prochaine fois que quelque chose comme cela vient?

OriginalL'auteur | 2008-09-05