Sfortunatamente, non puoi eseguire sia l'inserimento che l'eliminazione in una query , ma puoi fare tutto in un'unica transazione se stai utilizzando un motore di negozio transazionale (come InnoDB). Inoltre, RETURNING
è supportato da Oracle e PostgreSQL ma non da MySQL e quindi è necessario scrivere delete
separato e insert
dichiarazioni.
L'utilizzo di una transazione, tuttavia, garantirà che solo i dati copiati correttamente verranno eliminati dalla tabellaA. Considera quanto segue:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;