2009-06-04 2 views

ответ

14

С MySQL 5.0.12, вы можете сделать это:

SELECT SLEEP(<seconds>); 

Параметр секунд может быть в доли секунды, как .5.

+0

Отлично! Большое спасибо. – Ragnar

+3

Если вам не нужен набор результатов, вы можете сделать 'DO SLEEP (n)' вместо этого. –

3
DO SLEEP(<seconds>); 

лучше. Вы не можете просто запускать операторы SELECT внутри триггеров. Если вы действительно хотите сделать это, вы должны сделать это, как здесь:

SET @nothing = (SELECT SLEEP(<seconds>)); 

Но я рекомендую использовать DO. И не забывайте, что триггер - это всего лишь один оператор по умолчанию. Если у вас есть более 1 заявление в вашем триггере вам нужно использовать BEGIN/END:

BEGIN 
    DO SLEEP(<seconds>); 
    UPDATE ...; 
END