4

これは私が使用しているクエリです

create trigger trig1 after insert on participant for each row
begin
insert into team(sap) select sap from participant order by ID desc limit 1,1
end;

新しい行が参加者テーブルに挿入された後、参加者テーブルからチーム テーブルの sap フィールドに sap フィールドをコピーすることになっています。

クエリを作り直すために多くの方法を試しましたが、同じエラーが発生し続けますが、何が間違っていますか?

ありがとう

4

1 に答える 1

4

最新のsap値を取得するために同じテーブルでクエリを実行する必要がないため、トリガーを使用しています。 new.sapを使用してその値を直接取得できます。

クエリの問題です。クエリでは、 INSERT..SELECTクエリとENDキーワードの後に​​セミコロン (;) を入れていません。

これはあなたのために働くでしょう:

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `trig1`$$

CREATE
    TRIGGER `trig1` AFTER INSERT ON `participant` 
    FOR EACH ROW BEGIN
        INSERT INTO team(sap) 
        VALUES(new.sap);
    END;
$$

DELIMITER ;
于 2013-01-12T05:14:12.733 に答える