私は完全に機能するトリガーを持っています。テストを追加していくと、現在のデータベースに基づいてデータベースを動的に選択するようにこのトリガーを変更したいことがわかりました。本番環境では、このトリガーはデータベースrdata
に常駐し、 と通信しますdefault
。ただし、テストでは、トリガーは に存在し、test_rdata
と通信しtest_default
ます。以下のトリガーを変更して、適切なデータベースを動的に選択するにはどうすればよいですか
DROP TRIGGER IF EXISTS `af_rdata_data_trigger_4` $$
CREATE TRIGGER af_rdata_data_trigger_4
AFTER INSERT on Results FOR EACH ROW
BEGIN
DECLARE project_id INT;
-- Do this first - another table may have already created it..
INSERT INTO default.rdata_project (`user`,`result_number`, `created_on`)
VALUES (USER(), NEW.LBLDGRUNNO, NOW()) ON DUPLICATE KEY UPDATE last_update=NOW();
-- Now push in our values
-- THIS IS WHAT NEEDS TO BE DYNAMIC!!
UPDATE default.rdata_project project JOIN Results
ON project.result_number = Results.LBLDGRUNNO SET
project.annual_total_cost = Results.FTOTCOST
WHERE project.result_number=NEW.LBLDGRUNNO;
END$$
DELIMITER ;
どうもありがとう!