Update através de select

3 respostas Resolvido
mysql
M

Galera, estou tentando fazer um update e estou recebendo o erro:

You can’t specify target table ‘contas’ for update in from clause.

Meu update está da seguinte forma:

UPDATE 
	contas
SET SALDOATUAL=(select SUM(SALDOATUAL+300) from contas WHERE CODCLIENTE=2) 
WHERE 
	CONTA=2 
AND CODAGENCIA=121
AND CODCLIENTE=2;

Alguém pode ajudar?

3 Respostas

J

Pesquisa pela msg. Exemplo: https://www.codeproject.com/Tips/831164/MySQL-can-t-specify-target-table-for-update-in-FRO

M

Desculpe, pesquisei mais não entendi muito bem. O erro então está acontecendo pois o MySql nao aceita sub-consultas se tratando da mesma tabela?

J
Solucao aceita

O que não entendeu do artigo? Lá explica bem, que o select deve estar envolvido de outro select e colocar o alias.

Além disso, eles mostram o exemplo errado (como voce está fazendo) e o exemplo correto para comparar. Veja como se fosse um jogo de 7 erros.

Criado 10 de fevereiro de 2018
Ultima resposta 10 de fev. de 2018
Respostas 3
Participantes 2