Leider können Sie nicht eine Abfrage sowohl einfügen als auch löschen , aber Sie können alles in einer Transaktion erledigen wenn Sie eine Transaktionsspeicher-Engine (wie InnoDB) verwenden. Außerdem RETURNING
wird von Oracle und PostgreSQL unterstützt, aber nicht von MySQL, und daher müssen Sie ein separates delete
schreiben und insert
Aussagen.
Die Verwendung einer Transaktion garantiert jedoch, dass nur die erfolgreich kopierten Daten aus TabelleA gelöscht werden. Beachten Sie Folgendes:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;