残念ながら、1つのクエリで挿入と削除の両方を行うことはできません。 、ただし、すべてを1つのトランザクションで実行できます トランザクションストアエンジン(InnoDBなど)を使用している場合。さらに、RETURNING OracleとPostgreSQLではサポートされていますが、MySQLではサポートされていないため、個別のdeleteを作成する必要があります。 およびinsert ステートメント。
ただし、トランザクションを使用すると、正常にコピーされたデータのみがtableAから削除されることが保証されます。次のことを考慮してください:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;