(8.0.22)
https://www.wakuwakubank.com/posts/203-mysql-transaction-nest/
トランザクションのネストをサポートしていない
2つ目のstart transactionでコミットされる
drop table tab1;
create table tab1(col1 int);
select * from tab1;
start transaction;
insert into tab1 values(1);
start transaction;
select * from tab1;
(19c)
トランザクションのネストをサポートしていない
(13)
トランザクションのネストをサポートしていない
2つ目のstart transactionを実行すると「WARNING: there is already a transaction in progress」となり、無視される
drop table tab1;
create table tab1(col1 int);
select * from tab1;
start transaction;
insert into tab1 values(1);
start transaction;
insert into tab1 values(2);
commit;
select * from tab1;
(2019)
トランザクションのネストをサポートしている
ネストの深さと同じ数のcommitが必要
rollbackするとネストレベルに関係なく全トランザクションがロールバックされる
drop table tab1;
create table tab1(col1 int);
select * from tab1;
select @@trancount;
begin transaction;
select @@trancount;
insert into tab1 values(1);
begin transaction;
select @@trancount;
insert into tab1 values(2);
begin transaction;
select @@trancount;
insert into tab1 values(3);
commit;
select @@trancount;
commit;
select @@trancount;
commit;
select @@trancount;
select * from tab1;
select @@trancount;
begin transaction;
select @@trancount;
insert into tab1 values(1);
begin transaction;
select @@trancount;
insert into tab1 values(2);
begin transaction;
select @@trancount;
insert into tab1 values(3);
rollback;
select @@trancount;