Tyvärr kan du inte göra både infogning och borttagning i en fråga , men du kan göra allt i en transaktion om du använder en transaktionsbutiksmotor (som InnoDB). Dessutom RETURNING
stöds av Oracle och PostgreSQL men inte av MySQL och därför måste du skriva separat delete
och insert
uttalanden.
Att använda en transaktion kommer dock att garantera att endast framgångsrikt kopierade data kommer att raderas från tabell A. Tänk på följande:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;