Trigger before insert truncate

NP3 Messages postés 1 Statut Membre -  
jee pee Messages postés 31883 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

je cherche un code pour trigger qui pourrait vider la table employer avant de la remplir avec de nouvelles données, merci

2 réponses

  1. Panth33ra Messages postés 23135 Date d'inscription   Statut Membre Dernière intervention   Ambassadeur 2 364
     

    Bonjour,

    J'ai trouvé ceci sur un autre forum mais est-ce bien cette méthode ?


    0
  2. jee pee Messages postés 31883 Date d'inscription   Statut Modérateur Dernière intervention   9 979
     

    Bonjour,

    Es-tu sur de vouloir faire un truncate sur la table (qui supprime tous les enregistrements) avant chaque insert ? C'est un type d'utilisation que l'on réserve généralement à une table de travail.

    Si on regarde la doc on aura quelque chose comme :

    CREATE OR REPLACE TRIGGER vider_employer
       BEFORE INSERT ON schema.employer
       BEGIN
          TRUNCATE TABLE employer;
       END;

    Après TRUNCATE est un ordre SQL de type DDL comme CREATE TABLE, alors que SELECT, INSERT sont des ordres de type DML. La particularité d'un ordre DDL est qu'il est AUTO COMMIT, il valide toutes les opérations en attente de COMMIT. On ne pourra donc pas utiliser une table qui aurait un trigger database avec un TRUNCATE dans une transaction. Transaction au sens d'un ensemble d'ordre SQL cohérents, qui doivent, soit tous être exécutés, soit en cas d'anomalie aucun ne doit l'être.


    0