Il peut être utile et même conseillé suivant le contexte de désactiver un Trigger lors d'une opération de maintenance lourde ou d'administration sur une table (PL/SQL, SQL*Loader, mise à jour en masse,etc...).
● Avec ALTER TRIGGER
● Avec ALTER TABLE
● Avec DROP TRIGGER
SQL> ALTER TRIGGER MonTrigger ENABLE;
SQL> ALTER TRIGGER MonTrigger DISABLE;
SQL> ALTER TABLE MaTable ENABLE ALL TRIGGERS;
SQL> ALTER TABLE MaTable DISABLE ALL TRIGGERS;
SQL> DROP TRIGGER Nom_Trigger;
SQL> SELECT DISTINCT table_owner,
table_name,
status
FROM all_triggers
WHERE owner = 'MonUser'
AND status = 'ENABLED';
La même requête pour récupérer le SQL à exécuter
SQL> SELECT DISTINCT
'alter table '||table_owner||'.'||table_name||' DISABLE ALL TRIGGERS;'"SQL"
FROM all_triggers
WHERE owner = 'MonUser'
AND status = 'ENABLED';
Attention pour la réactivation des triggers plus tard, ne réactiver pas ceux qui étaient intentionnellement désactiver!!
SQL> SELECT * FROM user_triggers;
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
| • Types TRIGGERS Table et TRIGGERS Ligne ORACLE |