V jednom dotazu bohužel nelze provést současně vkládání i mazání , ale to vše můžete udělat v rámci jedné transakce pokud používáte transakční nástroj obchodu (jako InnoDB). Navíc RETURNING
je podporována Oracle a PostgreSQL, ale ne MySQL, a proto musíte napsat samostatné delete
a insert
prohlášení.
Použití transakce však zaručí, že z tabulky A budou odstraněna pouze úspěšně zkopírovaná data. Zvažte následující:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;