Se questa è un'applicazione web e stai cercando di mantenere la transazione da una pagina all'altra, non; non funzionerà.
Cosa intendi con "subito dopo"? Se non stai facendo nulla tra le due affermazioni, anche un timeout di 1 secondo dovrebbe essere abbastanza grande.
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 |
+----------------------------+
Per spiegare GLOBAL vs SESSION per VARIABLES:il valore GLOBAL viene utilizzato per inizializzare il valore SESSION all'avvio della connessione. Successivamente, puoi modificare il valore SESSION per influenzare ciò che stai facendo. E la modifica del valore GLOBAL non ha alcun effetto sulla tua corrente connessione.
Modificare il timeout su 1 è abbastanza sicuro (una volta compreso GLOBAL vs SESSION). L'unica cosa che cambierà è la frequenza con cui viene visualizzato quell'errore.