Om det här är en webbapplikation och du försöker hålla fast vid transaktionen från en sida till nästa, gör inte; det kommer inte att fungera.
Vad menar du med "strax efter"? Om du inte gör något mellan de två påståendena bör även en timeout på 1 sekund vara tillräckligt stor.
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 |
+----------------------------+
För att förklara GLOBAL vs SESSION för VARIABLER:GLOBAL-värdet används för att initiera SESSION-värdet när din anslutning startar. Efter det kan du ändra SESSION-värdet för att påverka vad du gör. Och att ändra GLOBAL-värdet har ingen effekt på din aktuella anslutning.
Att ändra timeout till 1 är ganska säkert (när du väl förstår GLOBAL vs SESSION). Det enda som kommer att förändras är frekvensen av att få det felet.