За съжаление, не можете да направите едновременно вмъкване и изтриване в една заявка , но можете да направите всичко с еднатранзакция ако използвате механизм за съхранение на транзакции (като InnoDB). Освен това RETURNING
се поддържа от Oracle и PostgreSQL, но не и от MySQL и затова трябва да напишете отделно delete
и insert
изявления.
Използването на транзакция обаче ще гарантира, че само успешно копираните данни ще бъдат изтрити от таблица A. Помислете за следното:
begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;