Desværre kan du ikke foretage både indsættelse og sletning i én forespørgsel , men du kan gøre det hele i én transaktion hvis du bruger en transaktionsbutiksmotor (som InnoDB). Desuden RETURNING
understøttes af Oracle og PostgreSQL, men ikke af MySQL, og derfor skal du skrive separat delete
og insert
udsagn.
Brug af en transaktion vil dog garantere, at kun de succesfulde kopierede data vil blive slettet fra tabel A. Overvej følgende:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;