Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Äquivalent zur MySQL-Rückgabeklausel

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;