First, I set John to the user-defined variable @name as shown below:
SET @name = 'John';
Then, I set David to @name in a transaction, then rollbacked as shown below:
BEGIN;
SET @name = 'David';
ROLLBACK;
But, @name was not rollbacked to John as shown below:
mysql> SELECT @name;
+-------+
| @name |
+-------+
| David |
+-------+
I read the doc about transaction and user-defined variables but I could not find any relevant information.
So, how can I rollback user-defined variables?
A user-defined variable is as long active as long the session is online and disappear, when you disconnect. It has a session scope
A transaction scope don't touch that and can't influence it, besides setting the value and it will not reverse it as it is putside of its scope