Cannot rollback user-defined variables in MySQL
Asked Answered
D

1

-2

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?

Doordie answered 14/12, 2023 at 22:59 Comment(2)
Transactions effects only the tables whose engine is transactional. None other objects, including user-defined variables, are saved by transactional savepoints.Vachill
Why would you want to do this?Crosswalk
F
0

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

Fictional answered 14/12, 2023 at 23:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.