MySQL(mariadb10)でトリガーで実行される命令を遅らせたいがエラーが出てしまいます
sql
1DELIMITER $$ 2CREATE 3 TRIGGER flagon 4 AFTER UPDATE 5 ON flagtable 6 FOR EACH ROW 7 BEGIN 8 WAITFOR DELAY '01:00:00'; 9 UPDATE flagtable SET flag = 'on' WHERE flag = 'off'; 10 END $$ 11DELIMITER ;
と、flagtable がUPDATEされたのをトリガーとして1時間後に別のUPDATEをしたいと考えています。
しかし
phpmyadminで実行すると
リクエストの処理中に1つ以上のエラーが発生しました
MySQLのメッセージ:#1064 -SQL構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください
と表示されトリガーを作れません。
WAITFOR DELAY '01:00:00';を消してやるとトリガーが作成出来ます。
「mariadb10 WAITFOR DELAY」などで検索して正しいSQLのマニュアルを探しているのですがそれらしい情報が出てこず困っています。
修正依頼でご教示頂きました、 https://qiita.com/isshy_exception/items/d1746079a8f4e4a3c3a8 のうように WAITFOR DELAYの代わりにSLEEPも使ってみたのですが **リクエストの処理中に1つ以上のエラーが発生しました MySQLのメッセージ:#1415 Not allowed to return result set from a triggerとエラーが表示されます。
エラー文で検索してみたのですが英語のサイトなどが英文のため理解しづらいです。
解決方法ご教示お願いします
回答1件
あなたの回答
tips
プレビュー