Rag*_*nar 7 mysql triggers stored-procedures
有没有一个像样的方法来延迟执行mysql触发器?
WHILE @condition = 0
sleep for awhile
insert into some_table values(NEW.value1, NEW.value2);
Run Code Online (Sandbox Code Playgroud)
Jon*_*ell 15
从MySQL 5.0.12开始,你可以这样做:
SELECT SLEEP(<seconds>);
Run Code Online (Sandbox Code Playgroud)
秒参数可以在几分之一秒内,如.5.
DO SLEEP(<seconds>);
Run Code Online (Sandbox Code Playgroud)
更好。没有理由只SELECT在触发器内运行语句而不需要结果集。如果您确实想这样做,则需要像下面这样:
SET @nothing = (SELECT SLEEP(<seconds>));
Run Code Online (Sandbox Code Playgroud)
但是我建议使用DO。并且不要忘记,触发器只是默认情况下的一条语句。如果触发器中包含1条以上的语句,则需要使用BEGIN/ END:
BEGIN
DO SLEEP(<seconds>);
UPDATE ...;
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12607 次 |
| 最近记录: |