2016-04-04 30 views
0

Ich versuche, einen Trigger löschen, nachdem ich eine Zeile in der Datenbank eine Mitarbeiter Tabelle löschen, DatenbankB Autotabelle mit der gleichen MitarbeiterID wird ebenfalls gelöscht werden. Aber nach mehreren Versuchen wird weiterhin ein Trigger mit Fehlern ausgelöst, ohne anzugeben, was der Fehler ist. Hier ist mein Code. Vielen Dank.Oracle-Trigger nach dem Löschen

 DELIMITER // 
     CREATE OR REPLACE TRIGGER employee_delete 
     AFTER DELETE on databaseA.employee 
     FOR EACH ROW 
     BEGIN 
     DELETE FROM databaseB.author 
     WHERE databaseB.author.employeeid = old.employeeid 
     END; 
    /
+2

Führen Sie 'show errors' aus, oder fragen Sie die' user_errors'-Ansicht ab, um die tatsächlichen Kompilierungsfehler zu sehen. Mit 'Datenbank' meinst du 'Schema'? Du verpasst einen Doppelpunkt vor ': alt ', aber nicht sicher, ob das das einzige Problem ist. –

+2

Ihnen fehlt ein Semikolon nach der DELETE-Anweisung; du brauchst sogar ': alt' statt' alt' – Aleksej

+0

Mögliches Duplikat von [dieser Frage] (http://stackoverflow.com/q/23561094/266304) wenn das der einzige Fehler ist. –

Antwort

1

Die beiden oben genannten Poster erstellen. Sie müssen die tatsächliche Löschanweisung mit einem Semikolon ";" abschließen. Außerdem muss "alt" und "neu" ein Doppelpunkt ":" vorangestellt werden. Darüber hinaus kann der Auslöser abhängig von Zuschüssen, Synonymen und Autorisierungen einige Probleme mit der Autorisierung haben. Wenn ich raten sollte, sind die Syntaxprobleme die ersten Probleme. Wenn danach noch Probleme auftreten, liegt möglicherweise ein Problem bei der Erteilung vor.

+0

Yup ist das Semikolon, das es verursacht. Danke Leute! –

Verwandte Themen