SET @rowid = ROUND(RAND() * ); START TRANSACTION; UPDATE t1 SET b = 'changed' WHERE id=@rowid; SELECT b FROM t1 WHERE id=@rowid; b changed COMMIT; START TRANSACTION; DELETE FROM t1 WHERE id=@rowid; INSERT INTO t1 (id, b) VALUES (@rowid, 'newly_inserted'); SELECT b FROM t1 WHERE id=@rowid; b newly_inserted COMMIT; CREATE TABLE tw_ AS SELECT * FROM t1; DROP TABLE tw_;