2015-06-12 2 views
-1

Я хочу вставить записи всех записей в tableA со значением3 = True в tableB. Затем я хочу удалить эти записи в tableA. Я хочу сделать это в одном заявлении и попробовал использовать следующий SQL-запрос.delete from insert into statement

DELETE FROM 
    TableA 
WHERE 
    rowID IN (INSERT INTO TableB (Value1, Value2) 
     SELECT Value1, Value2 FROM TableA WHERE Value3=TRUE RETURNING rowID) 

Но это не работает. Как я могу исправить этот SQL так, чтобы он работал так, как планировалось?

+1

Почему одно заявление, а не одна сделка? –

+0

Я не думаю, что это возможно – Ormoz

ответ

1

Почему бы просто не разделить на две команды?

insert into TableB 
select * from TableA where value3 = True 

delete from TableA 
where rowID in (select * from TableA where value3 = True) 
+0

Запросы должны выполняться в транзакции. –

Смежные вопросы