DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a , b ) ENGINE= ; INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(10000,'foobar'); INSERT INTO t1 (a,b) SELECT a, b FROM t1; BEGIN; UPDATE t1 SET a=a+100; UPDATE t1 SET a=a-50, b=DEFAULT WHERE a>100; COMMIT; SELECT a,b FROM t1; a b 10050 NULL 10050 NULL 51 NULL 51 NULL 52 NULL 52 NULL 53 NULL 53 NULL 54 NULL 54 NULL 55 NULL 55 NULL BEGIN; UPDATE t1 SET b = 'update' WHERE a <= 4 ORDER BY a DESC, b ASC LIMIT 3; UPDATE t1 SET b = ''; ROLLBACK; BEGIN; UPDATE t1 SET b = 'update2' WHERE a <= 100; SAVEPOINT spt1; UPDATE t1 SET b = ''; ROLLBACK TO SAVEPOINT spt1; UPDATE t1 SET b = 'upd' WHERE a = 10050; COMMIT; SELECT a,b FROM t1; a b 10050 upd 10050 upd 51 update2 51 update2 52 update2 52 update2 53 update2 53 update2 54 update2 54 update2 55 update2 55 update2 DROP TABLE t1;