Ich habe eine Tabelle mit 4 SpaltenTrigger einen Datensatz vor dem Einsetzen löschen
1.msisdn
2.accountnumber
3.cardnumber
4.subscriptiondate
ich einen Auslöser zu dieser Tabelle hinzugefügt werden soll. Wenn die Daten i Einfügen ist, sind
1.99999999
2.2
3.3298572857239
4.(this can be blank)
und die Daten, die aktuell in der Tabelle sind
1.99999999
2.1
3.3298572857239
4.(this can be blank)
Auslöser überprüfen sollten, ob dies msisdn ist 99999999
bereits 3298572857239
einen Datensatz mit dieser Kartennummer hat. Wenn in der Tabelle bereits ein Datensatz vorhanden ist, sollte der Trigger den vorhandenen Eintrag löschen und den neuen Eintrag einfügen. Das Endergebnis sollte so aussehen:
Ich möchte den Wert von accountnumber gleich vor und nach dem Trigger halten. Dies habe ich bisher versucht, aber für diesen Trigger bekomme ich keine Daten in der Spalte accountnumber. Bitte jemand helfen
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;
/
Brauchen Sie einen Auslöser ar könnte eine MERGE eine Lösung sein? Was hast du bisher versucht? – Aleksej
Ich habe versucht, einzigartige Einschränkungen auf msisdn und cardnumber hinzuzufügen, aber es hat nicht funktioniert (was die Funktionalität der App beeinflusst). Wenn es ein Auslöser ist, dachte ich, wir können mehrere Einträge derselben Kartennummer vermeiden, die einem einzelnen Geld in der Tabelle zugewiesen sind. –