#!/usr/bin/perl use strict; use warnings; use DBI; use DBD::mysql; my $dbh = DBI->connect('DBI:mysql:database=test;mysql_socket=/var/lib/mysql/mysql.sock', 'root', '') or die 'Can\'t connect to mysql'; $dbh->do('DROP TABLE IF EXISTS `hang`'); $dbh->do('CREATE TABLE `hang` (`data` longblob) ENGINE=InnoDB DEFAULT CHARSET=utf8'); $dbh->do('START TRANSACTION'); for (my $i = 0; $i < 3; $i++) { $dbh->do('SAVEPOINT savepoint_1'); $dbh->do('INSERT INTO `hang` (data) VALUES (?)', undef, 'X'x16384); $dbh->do('RELEASE SAVEPOINT savepoint_1'); } $dbh->do('SAVEPOINT savepoint_1'); $dbh->do('ROLLBACK TO SAVEPOINT savepoint_1'); $dbh->do('COMMIT'); $dbh->disconnect;