有没有一种可靠的方法来延迟执行mysql触发器?
WHILE @condition = 0
sleep for awhile
insert into some_table values(NEW.value1, NEW.value2);
答案 0 :(得分:15)
从MySQL 5.0.12开始,你可以这样做:
SELECT SLEEP(<seconds>);
秒参数可以在几分之一秒内完成,例如.5。
答案 1 :(得分:5)
DO SLEEP(<seconds>);
更好。您不能只在触发器内运行SELECT
语句。
如果您真的想要这样做,您需要像这里一样:
SET @nothing = (SELECT SLEEP(<seconds>));
但我建议使用DO
。并且不要忘记每个默认情况下触发器只是一个语句。如果您的触发器中有超过1条语句,则需要使用BEGIN
/ END
:
BEGIN
DO SLEEP(<seconds>);
UPDATE ...;
END