【发布时间】:2009-06-04 11:27:42
【问题描述】:
有没有一种不错的方法来延迟mysql触发器的执行?
WHILE @condition = 0
sleep for awhile
insert into some_table values(NEW.value1, NEW.value2);
【问题讨论】:
标签: mysql stored-procedures triggers
有没有一种不错的方法来延迟mysql触发器的执行?
WHILE @condition = 0
sleep for awhile
insert into some_table values(NEW.value1, NEW.value2);
【问题讨论】:
标签: mysql stored-procedures triggers
从 MySQL 5.0.12 开始,您可以这样做:
SELECT SLEEP(<seconds>);
秒参数可以在几分之一秒内,例如 .5。
【讨论】:
DO SLEEP(n)。
DO SLEEP(<seconds>);
更好。没有理由只在触发器内运行SELECT 语句而不需要结果集。
如果你真的想要这样做,你需要这样做:
SET @nothing = (SELECT SLEEP(<seconds>));
但我建议使用DO。并且不要忘记触发器只是默认情况下的单个语句。如果触发器中有超过 1 个语句,则需要使用 BEGIN/END:
BEGIN
DO SLEEP(<seconds>);
UPDATE ...;
END
【讨论】: