Sayangnya, Anda tidak dapat melakukan penyisipan dan penghapusan dalam satu kueri , tetapi Anda dapat melakukan semuanya dalam satu transaksi jika Anda menggunakan mesin toko transaksional (seperti InnoDB). Selain itu, RETURNING
didukung oleh Oracle dan PostgreSQL tetapi tidak oleh MySQL dan oleh karena itu Anda perlu menulis delete
secara terpisah dan insert
pernyataan.
Namun, menggunakan transaksi, akan menjamin bahwa hanya data yang berhasil disalin yang akan dihapus dari tableA. Pertimbangkan hal berikut:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;