Jeśli jest to aplikacja internetowa i próbujesz zawiesić transakcję między stronami, nie rób tego; to nie zadziała.
Co rozumiesz przez „tuż po”? Jeśli nic nie robisz między tymi dwoma instrukcjami, nawet 1 sekunda przerwy powinna być wystarczająco duża.
mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 1 |
+----------------------------+
Aby wyjaśnić GLOBAL vs SESSION dla ZMIENNYCH:Wartość GLOBAL jest używana do inicjowania wartość SESSION po uruchomieniu połączenia. Następnie możesz zmienić wartość SESSION, aby wpłynąć na to, co robisz. A zmiana wartości GLOBALNY nie ma wpływu na Twoje bieżące połączenie.
Zmiana limitu czasu na 1 jest całkiem bezpieczna (kiedy zrozumiesz GLOBAL vs SESSION). Jedyną rzeczą, która się zmieni, jest częstotliwość pojawiania się tego błędu.