MySQL Forums
Forum List  »  Newbie

Erro de update. Necessito atualizar mais de um registro.
Posted by: Tiago Cardoso card
Date: October 09, 2018 06:17AM

Está dando varios erros relacionados e update. Basicamente tenho:

tab_cidades2 tabela1

identificador int
nomedacidade
estado varchar(2)
ctrl_cidade


validaCidade --tabela2

identificador (ctrl_cidade)
nome
cep
estado
...


preciso verificar se tabela.ctrl_cidade é null, tabela1.estado = tabela2.estado, tabela1.nomecidade = tabela2.nome
Após as verificações, preciso atribuir o identificador da tabela 2 (ctrl_cidade) a coluna ctrl_cidade da tabela1.

Mas sempre da erro.


SINTASES COM ERRO:

update tabelaDesatualizada
set tabelaDesatualizada.ctrl_cidade = tabelaAtualizada.ctrl_cidade
from orcsy514_server.tab_cidades2 as tabelaDesatualizada
inner join orcsy514_exemplo.cad_cidades as tabelaAtualizada
on tabelaDesatualizada.cid_estado = tabelaAtualizada.estado
where tabelaDesatualizada.cid_nome = tabelaAtualizada.cidade tabelaDesatualizada.ctrl_cidade is null or tabelaDesatualizada.ctrl_cidade = '';





erro: 0 17 09:15:44 update tabelaDesatualizada
set tabelaDesatualizada.ctrl_cidade = tabelaAtualizada.ctrl_cidade
from orcsy514_server.tab_cidades2 as tabelaDesatualizada
inner join orcsy514_exemplo.cad_cidades as tabelaAtualizada
on tabelaDesatualizada.cid_estado = tabelaAtualizada.estado
where tabelaDesatualizada.cid_nome = tabelaAtualizada.cidade tabelaDesatualizada.ctrl_cidade is null or tabelaDesatualizada.ctrl_cidade = '' Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from orcsy514_server.tab_cidades2 as tabelaDesatualizada
inner join orcsy514_e' at line 3 0.156 sec
----------------------------------------------------


update tab_cidades2
set ctrl_cidade = (select tabelaOk.ctrl_cidade from orcsy514_exemplo.cad_cidades as tabelaOk
inner join orcsy514_server.tab_cidades2 as tabelaErro
on tabelaErro.cid_estado = tabelaOk.estado and tabelaErro.cid_nome = tabelaOk.cidade)
where tab_cidades2.ctrl_cidade is null;



erro:
0 16 09:02:16 update tab_cidades2
set ctrl_cidade = (select tabelaOk.ctrl_cidade from orcsy514_exemplo.cad_cidades as tabelaOk
inner join orcsy514_server.tab_cidades2 as tabelaErro
on tabelaErro.cid_estado = tabelaOk.estado and tabelaErro.cid_nome = tabelaOk.cidade)
where tab_cidades2.ctrl_cidade is null Error Code: 1093. You can't specify target table 'tab_cidades2' for update in FROM clause 0.172 sec

-------------------------


update tab_cidades2
set ctrl_cidade = (select ctrl_cidade from orcsy514_exemplo.cad_cidades where estado = tab_cidades2.cid_estado and cidade = tab_cidades2.cid_nome)
where ctrl_cidade is null;



Erro:

0 19 09:16:29 update tab_cidades2
set ctrl_cidade = (select ctrl_cidade from orcsy514_exemplo.cad_cidades where estado = tab_cidades2.cid_estado and cidade = tab_cidades2.cid_nome)
where ctrl_cidade is null Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.156 sec










Alguém pode me ajudar?

Options: ReplyQuote


Subject
Written By
Posted
Erro de update. Necessito atualizar mais de um registro.
October 09, 2018 06:17AM


Sorry, only registered users may post in this forum.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.