Trigger : Besoin d'une relecture avant de pourrir ma base... - SQL/NoSQL - Programmation
Marsh Posté le 24-02-2005 à 08:47:24
Ben tu n'as qu'à faire une autre table zUserContractPerimeter_Arjuna créée à partir de zUserContractPerimeter :
Code :
|
Et faire le delete dans celle-là pour faire tes tests ...
Ou encore, au lieu de faire un DELETE, ajoute un champ TO_DELETE dans zUserContractPerimeter et fais un UPDATE ... comme ça tu verras si tu flag les bonnes lignes à effacer
Marsh Posté le 24-02-2005 à 09:20:24
mouais, mais je suis très fénéant je me disais que si vous le faisiez à ma place, ça serait mieu
finalement, j'ai lancé le truc (pas trop fort pour pas le casser), et j'ai obtenu une ou deux erreurs à la con à cause du nom du curseur déjà utilisé dans une procédure déclenchant le trigger (changé en local) et à part ça les données sont toujours là et ça fait ce que je lui demande, ça a donc l'air bon
Marsh Posté le 23-02-2005 à 17:18:34
Je suis en train d'écrire un Trigger sur un base de données.
Et euh... En fait, je doute un peu (j'ai l'habitude de lancer ma requête bugguée, et débugguer au fur et à mesure, sauf que là ça va pas le faire).
Pour résumer, j'ai une table "LeaseSchedule", dans laquelle j'ai un champ "UseRights" à 0 ou 1.
J'ai une table "zUserContractPerimeter" qui permet de rattacher des droits utilisateurs à un schédule et ses fils (contracts).
Lorsque je décide de passer un schedule à une gestion sans droits (UseRights = 0), je veux aller supprimer tous les droits stipulés pour ce schedule, puisqu'ils sont devenus caduques.
Voilà le truc que j'ai pondu, en essayant d'optimiser un maximum le nombre de lignes traîtées :
J'ai un léger doute sur mon delete en fait
Normalement, ce que j'ai voulu écrire (en tenant compte du curseur autour), c'est :
-> Supprime les lignes de zUserContractPerimeter où dans "deleted" (avant update de la table LeaseSchedule) je gérais des authorisations pour le schedule, et où dans inserted (après maj) je n'en gère plus.
Ca marche mon truc, ou si je vais vider ma base au premier essai ?
Je demande ça, parceque j'ai passé une partie de la journée à la remplir pour me faire des jeux de test, et ça me gonflerait de devoir tous me les re-taper