普通にやっていればトランザクション2のコミットは、トランザクション1のコミット・ロールバックに
かかわらず、トランザクション1でauto_incrementされた前提でidを振ることになるでしょう
つまりトランザクション1がロールバックした場合、トランザクション2のidは連番ではなくなります
たとえば以下のテーブル構造だとして
SQL
1create table tbl(id int not null primary key auto_increment,data int);
PHPからPDOで処理するとき
PHP
1 $pdo1->beginTransaction();
2 $pdo2->beginTransaction();
3 $sql="INSERT INTO tbl(data) VALUES(100),(101),(102)";
4 $stmt = $pdo1->query($sql);
5 $sql="INSERT INTO tbl(data) VALUES(200),(201),(202)";
6 $stmt = $pdo2->query($sql);
7 $pdo1->rollback();
8 $pdo2->commit();
だとするとtblは、(4,200),(5,201),(6,202)になります。
極端な話し、pdo2はpdo1を待つ必要はなく以下でも結果は同じです
PHP
1 $pdo1->beginTransaction();
2 $pdo2->beginTransaction();
3 $sql="INSERT INTO tbl(data) VALUES(100),(101),(102)";
4 $stmt = $pdo1->query($sql);
5 $sql="INSERT INTO tbl(data) VALUES(200),(201),(202)";
6 $stmt = $pdo2->query($sql);
7 $pdo2->commit();
8 $pdo1->rollback();
※2をコミットしてから1をロールバック