j'ai une table avec 4 colonnesdéclencheur pour supprimer un enregistrement avant insertion
1.msisdn
2.accountnumber
3.cardnumber
4.subscriptiondate
Je veux ajouter un élément déclencheur à cette table. Si les données que je suis d'insertion est
1.99999999
2.2
3.3298572857239
4.(this can be blank)
et les données qui est actuellement dans le tableau est
1.99999999
2.1
3.3298572857239
4.(this can be blank)
Trigger doit vérifier s'il y a cette msisdn 99999999
est déjà un record avec ce numéro de carte 3298572857239
. Si un enregistrement existe déjà dans la table, le déclencheur doit supprimer l'entrée existante et insérer la nouvelle. Le résultat final devrait ressembler à ceci
1.99999999
2.1
3.3298572857239
4.(this can be blank)
Je veux garder la valeur de accountnumber identique avant et après le déclenchement. C'est ce que j'ai essayé jusqu'à présent, mais pour ce déclencheur, je ne reçois aucune donnée dans la colonne accountnumber. Veuillez aider quelqu'un
DROP TRIGGER TRIG_TABLEA;
CREATE OR REPLACE TRIGGER TRIG_TABLEA
BEFORE INSERT ON TABLEA
REFERENCING OLD AS Old NEW AS New
FOR EACH ROW
BEGIN
:new.accountnumber := :old.accountnumber;
DELETE FROM TABLEA WHERE MSISDN = :new.MSISDN AND CARDNUMBER = :new.CARDNUMBER;
:new.MSISDN := :new.MSISDN;
:new.CARDNUMBER := :new.CARDNUMBER;
:new.accountnumber := :old.accountnumber;
END;
/
Avez-vous besoin d'un déclencheur ar un MERGE pourrait-il être une solution? Aussi, qu'avez-vous essayé jusqu'à présent? – Aleksej
J'ai essayé d'ajouter des contraintes uniques sur msisdn et cardnumber mais cela n'a pas fonctionné (affectant la fonctionnalité de l'application). Si c'est un déclencheur je pensais que nous pouvons éviter plusieurs entrées de même numéro de carte attribué à un seul msisdn dans la table. –