UPDATE COM INNER JOIN – POSTGRES

O UPDATE NO POSTGRES NÃO FUNCIONA COMO NO SQLSERVER

Note que se tens um select com INNER JOIN como abaixo:

select tmp.serial_number,tmp.pv,tmp.item,
'###',lu.serialgerencia, lu.pedidovenda, lu.item
from log_update lu
inner join temp_pv_item tmp on lu.pedidovenda = tmp.pv and lu.serialgerencia = tmp.serial_number

Na hora de fazer o update, não utilizamos o INNER JOIN, ou seja, você já está manipulando a tabela, então insira a próxima tabela no from e as ligações (ON TABLE 2), passe para a cláusura WHERE, como abaixo:

--Fazendo o update
BEGIN TRANSACTION

update log_update as lu
set item = tmp.item
from temp_pv_item tmp
where lu.pedidovenda = tmp.pv and lu.serialgerencia = tmp.serial_number

ROLLBACK TRANSACTION
COMMIT TRANSACTION

No SQLSERVER, conseguimos fazer com o INNER JOIN.

 

Lembre-se de utilizar o BEGIN E O ROLLBACK, para ter certeza que seu UPDATE foi bem sucedido e então fechar com o COMMIT.

 

 

No comments yet.