START TRANSACTION;
INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3
FROM table1
WHERE some_condition;
DELETE FROM table1 WHERE some_condition;
COMMIT;
Ну вообще с точки зрения целостности данных - это будет один запрос. Т.е в результате транзакции либо записи будут удалены и добавлены, либо никаких изменений.