Ir para conteúdo
Fórum Script Brasil
  • 0

PROBLEMA COM UPDATE


tércio fernandes

Pergunta

Seguinte pessoal to passando o seguinte comando

UPDATE produto  
SET cp.titulo=(Select ssop.nome_produto 
                FROM sso.produtos ssop 
                INNER JOIN comprouche1.produto cp ON
                   (ssop.codigo_produto_loja=cp.codigo_produto_loja) 
                WHERE ssop.codigo_produto_loja <> '')
WHERE usuario = 'loja@fcardoso-online.com.br'

e estou tendo o seguinte erro: You can't specify target table 'produto' for update in FROM clause

Explicanto melhor:

Meu problema é o seguinte, exportei dados de um banco chamado sso para outro chamado comprouche1, como fiz por script, quando passei os dados para meu banco eles vieram com caracteres "malucos"

então como os produtos já estão com movimentação não posso mais mexe-los.

então queria atualizar os nome dos produtos da minha base pelo nome dos produtos da base sso, pois os mesmo estão corretos, e fazendo por UPDATE não vai ter bronca.

Grato pela ajuda!

Editado por Denis Courcy
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Seguinte pessoal to passando o seguinte comando

UPDATE produto

SET cp.titulo=(Select ssop.nome_produto from sso.produtos ssop INNER JOIN com1.produto cp ON

(ssop.codigo_produto_loja=cp.codigo_produto_loja) where ssop.codigo_produto_loja <> '')

where usuario = 'loja@fcardoso-online.com.br'

e estou tendo o seguinte erro: You can't specify target table 'produto' for update in FROM clause

tenta jogar as alias corretamente... tá fazendo referência a cp.titulo sendo q cp é a tabela com1.produto dentro da select

Link para o comentário
Compartilhar em outros sites

  • 0

já tentei de 2 maneiras

UPDATE comprouche1.produto cp

SET cp.titulo=

(SELECT ssop.nome_produto FROM sso.produtos ssop WHERE ssop.codigo_produto_loja=cp.codigo_produto_loja

and ssop.codigo_produto_loja <> ''

)

Ele me retorna Columm 'titulo' cannot be null

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

e:

UPDATE comprouche1.produto p

SET p.titulo=(Select ssop.nome_produto from sso.produtos ssop where ssop.codigo_produto_loja <> '' AND ssop.codigo_produto_loja=p.codigo_produto_loja)

where usuario = 'loja@fcardoso-online.com.br'

erro: Subquery returns more than 1 row

Vendo a sms do erro 1 resolvi dar o UPDATE direto pra retornar 1 linha somente. ele insere normalmente. mas o problema é qi são muitas linhas.

Alguma sujestao?

Seguinte pessoal to passando o seguinte comando

UPDATE produto

SET cp.titulo=(Select ssop.nome_produto from sso.produtos ssop INNER JOIN com1.produto cp ON

(ssop.codigo_produto_loja=cp.codigo_produto_loja) where ssop.codigo_produto_loja <> '')

where usuario = 'loja@fcardoso-online.com.br'

e estou tendo o seguinte erro: You can't specify target table 'produto' for update in FROM clause

tenta jogar as alias corretamente... tá fazendo referência a cp.titulo sendo q cp é a tabela com1.produto dentro da select

Nada Felipe =/

Link para o comentário
Compartilhar em outros sites

  • 0

pelo que entendi você tem uma tabela chamada produtos no banco sso e uma outra tabela chamada produto no banco comprouche1, que foi duplicada da primeira tabela via código e isso fez com que os nomes ficassem diferentes.

Pelo que vi na sua pesquisa as duas tabelas tem um campo em comum chamado codigo_produto_loja...

montei mais ou menos esta estrutura de acordo com o q eu entendi

`comprouche1`.`produto` (

`codigo_produto_loja` INT NOT NULL AUTO_INCREMENT ,

`titulo` VARCHAR(45) NULL ,

PRIMARY KEY (`codigo_produto_loja`) );

`sso`.`produtos` (

`codigo_produto_loja` INT NOT NULL AUTO_INCREMENT ,

`nome_produto` VARCHAR(45) NULL ,

PRIMARY KEY (`codigo_produto_loja`) );

adicionei vários valores as duas e fiz o update da seguinte maneira

update comprouche1.produto cp

left join sso.produtos sso on cp.codigo_produto_loja = sso.codigo_produto_loja

set cp.titulo = sso.nome_produto

também tem a questão do where da primeira consulta q você tinha colocado where usuario = 'loja@fcardoso-online.com.br' mas ai é contigo...

espero ter ajudado

see you

Editado por Felipe Vacão
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...