Oracle
 sql >> Base de données >  >> RDS >> Oracle

Qu'advient-il des déclencheurs dépendants lorsque la table est supprimée ?

La table a été supprimée, mais elle se trouve dans la corbeille , à partir de laquelle il peut être récupéré à l'aide des commandes de flashback (flashback ... before drop ]. Le nom affiché sous la forme BIN$... est un peu un cadeau. Le déclencheur s'affiche également avec un BIN$... nom, indiquant qu'il est également dans la corbeille, et que tous les index le seront également.

Vous pouvez vider la corbeille pour supprimer définitivement les objets qu'elle contient. Pour supprimer une table immédiatement, sans qu'elle aille à la corbeille, vous pouvez ajouter le mot-clé purge au drop commande, comme expliqué dans la documentation . Cela supprimera également tous les index et déclencheurs immédiatement.

S'il n'était pas supprimé automatiquement, le déclencheur ne serait de toute façon pas pertinent, car vous ne pourriez pas effectuer de DML sur la table supprimée, de sorte qu'il ne pourrait jamais se déclencher. C'est si la table contre laquelle le déclencheur est contre est tombé. Votre déclencheur est bizarre, il s'insère dans la même table. Normalement, vous auriez un déclencheur sur une table insérée dans votre table de sauvegarde (enfin, pour une utilisation des déclencheurs). Dans ce cas, supprimer la table de sauvegarde invaliderait le déclencheur sur la table en direct, mais ne le laisserait pas tomber. Seule la suppression de la table en direct supprimerait le déclencheur sur la table en direct.