残念ながら、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;