InnoDBを使用してMySQL5.5.28で複数の操作を実行するトリガーを作成しようとしています。
「test」と「test_watcher」の2つのテーブルがあります。最初のテーブルへの変更は、トリガーを使用してウォッチャーテーブルに記録されます。最後のトリガーはで2つの操作を実行する必要があります。これDELETE
は、MySQL Workbench(を使用DELIMITER
)で機能しますが、JDBCを使用して作成した場合は機能しません。
CREATE TRIGGER `AD_test_FER` AFTER DELETE
ON `test`
FOR EACH ROW
BEGIN
-- if it's been inserted, modified and deleted but never synced,
-- the revision is NULL: no one needs to know about it
DELETE FROM test_watcher WHERE pk = OLD.id AND revision IS NULL;
-- if it has been synced already, we just update the flag
UPDATE test_watcher SET flag = -1 WHERE pk = OLD.id;
END;
私は取得し続けcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax
ます。
Workbenchで動作することは知ってDELIMITER $$
いますが、JDBCはサポートしていません。
私はPostgreSQLでそれを達成し、必要に応じてコードを投稿します。