Mysql
 sql >> Base de données >  >> RDS >> Mysql

Équivalent de la clause de retour MySQL

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;