2016-04-04 16 views
0

databaseA employeeテーブルの行を削除した後にトリガー削除を実行しようとしていますが、同じemployeeidを持つdatabaseB authorテーブルも削除されます。しかし、何度か試行した後は、何がエラーであるのかを指定せずに、エラーの発生を促し続けます。ここに私のコードです。ありがとうございました。削除後のOracleトリガー

 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

'show errors'を実行するか、' user_errors'ビューを照会して実際のコンパイルエラーを確認してください。 「データベース」は「スキーマ」を意味しますか? ':old'の前にコロンがないのですが、それが唯一の問題なのかどうかは分かりません。 –

+2

DELETEステートメントの後にセミコロンがありません。もしもそれが唯一のエラーなら、あなたは '' old''の代わりに ':old'を必要とすることもあります。 – Aleksej

+0

[この質問](http://stackoverflow.com/q/23561094/266304)の可能な複製。 –

答えて

1

上記の両方のポスターが作成されています。実際の削除ステートメントはセミコロン ";"で終わらなければなりません。また、 "old"と "new"の前にコロン ":"を付ける必要があります。さらに、トリガには、権限付与、同義語、および承認によっていくつかの問題がある可能性があります。私が推測するならば、文法の問題が最初の問題です。それでも問題が続く場合は、助成金の発行があるかもしれません。

+0

Yupはそれを引き起こしているセミコロンです。みんなありがとう! –

関連する問題