0
AFTER INSERTトリガーを使用して、1つのデータベースのテーブルから最近更新された行の情報を取得し、別のデータベースのテーブルに格納します。しかし、私はテーブルが複合キー(ClubID、CourtID)を持つように最後に挿入された行を取得する方法はわかりませんし、それらのどれもが自動インクリメント列ではありません。 トリガーのコードは次のとおりです。自動増分列を使用しないでテーブルに最後に挿入された行にアクセスする方法はありますか?
DELIMITER //
DROP TRIGGER if exists insert_court //
CREATE TRIGGER insert_court AFTER INSERT ON suchwow.Court
FOR EACH ROW
BEGIN
DECLARE ckey2 INT;
DECLARE ckey1 INT;
DECLARE ckey3 INT;
SELECT MAX(CourtKey) INTO @ckey2 from suchwow_analytical.Court;
SELECT NEW.CourtID,NEW.ClubID INTO @ckey1,@ckey3 from suchwow.Court;
INSERT INTO suchwow_analytical.Court(CourtKey,CourtID,FloorType,
HourlyRate, ClubID,Street,City,State,Zipcode)
SELECT @ckey2+1,@ckey1,FloorType,HourlyRate,@ckey3,Street
,City,State,Zipcode from suchwow.Court c,suchwow.Club cl where c.clubID=cl.ClubID
and CourtID=ckey1 and cl.ClubID=ckey3;
END //
DELIMITER ;
#1172が複数の行エラーを返しています。私はNEW.CourtIDとNEW.ClubIDがそれの理由だと確信していますが、この問題を解決する方法は考えていません。それがどのように解決できるかについていくつかの洞察を投げかけると大きな助けになるでしょう。
お時間をいただきありがとうございます。