2017-02-10 11 views
0

最初のテーブルに値が挿入されたときに別のテーブルに値を挿入するトリガーを作成したいとします。 - ;に対応マニュアルをご確認くださいあなたのSQL構文でエラーが発生しているトリガーを介して別のテーブルに値を挿入する方法

CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT 
SET vIdPass = NEW.id 
INSERT INTO tbpass.fkUser VALUES vIdPass 
END 

私は、コードを実行しようとすると、それは「#1064このエラーを与える:

これまでのところ、私のトリガーは、次のようになりますあなたのMariaDBサーバーのバージョンは正しい構文の近くで使うことができます。 'SET vIdPass = NEW.id INSERT INTO tbpass.fkUser VALUES vIdPass END' 8行目

このエラーが表示される理由は誰にでもわかりますか?

+0

が 'セミコロンすべきではない;' vIdPass INT' –

+0

を宣言した後、 '変数のための必要はありません。単に 'INSERT INTO tbpass.fkUser VALUES(NEW.id)'を実行してください。 – Barmar

答えて

1

DELIMITERsとステートメントターミネータが必要です。

DELIMITER // 
CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT; -- terminate statements 
... 
END 
// 
DELIMITER ; 
関連する問題