Malheureusement, vous ne pouvez pas effectuer à la fois l'insertion et la suppression dans une seule requête , mais vous pouvez tout faire en une seule transaction si vous utilisez un moteur de magasin transactionnel (comme InnoDB). De plus, RETURNING
est pris en charge par Oracle et PostgreSQL mais pas par MySQL et vous devez donc écrire delete
séparé et insert
déclarations.
Cependant, l'utilisation d'une transaction garantira que seules les données copiées avec succès seront supprimées de tableA. Considérez ce qui suit :
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;