S'il s'agit d'une application Web et que vous essayez de vous accrocher à la transaction d'une page à l'autre, ne le faites pas; ça ne marchera pas.
Qu'est-ce que tu entends par "juste après" ? Si vous ne faites rien entre les deux instructions, même un délai d'attente de 1 seconde devrait suffire.
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 |
+----------------------------+
Pour expliquer GLOBAL vs SESSION pour VARIABLES :La valeur GLOBAL est utilisée pour initialiser la valeur SESSION lorsque votre connexion démarre. Après cela, vous pouvez modifier la valeur SESSION pour affecter ce que vous faites. Et changer la valeur GLOBAL n'a aucun effet sur votre courant connexion.
Changer le délai d'attente à 1 est assez sûr (une fois que vous comprenez GLOBAL vs SESSION). La seule chose qui changera est la fréquence d'obtention de cette erreur.