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

UPDATE não funciona na versão 3.4 MySQL


tércio fernandes

Pergunta

Olá pessoal. Tenho um update que funciona perfeitamente em uma versão 5.1 do MySQL. Só que estou precisando usa-lo em um mysql mais antigo 3.4 e da "pal". Já dei uma pesquisa na DOC do MySQL pensando eu que não funcionava UPDATE com duas tabelas na versão 3 mais pelo menos na DOC tem exemplos de uso.

Meu comando é:

update tbllancnbm2 as l2
inner join tbllanc as l
on (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
set l2.tabeb_lnbm = ?
where l2.codig_empr = ? and l2.mescp_lnbm = ? and l2.ANOCP_LNBM = ? and l.espec_lanc = ?;

erro 1064#

Já tentei também:

update tbllancnbm2 as l2
, tbllanc as l
set l2.tabeb_lnbm = ?
where (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
and ( l2.codig_empr = ? and l2.mescp_lnbm = ? and l2.ANOCP_LNBM = ? and l.espec_lanc = ? )

E também por subquery mais recebi aquele erro que não posso atualizar via subquery pois a tabela que vai ser atualizada participa ai não pode atualizar.

Já vi falar em tabelas temporárias!

Por favor se alguém puder me ajudar ficarei muito grato.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Já não lembro muito do mysql 3, mas vamos acompanhar para tentarmos resolver.

As interrogações são só um exemplo para demonstrar parâmetros?

Você já tentou em um banco de teste colocar um valor literal e ver a resposta?

Para tabela temporária crie a mesma estrutura da tabela atual colocando o engine MEMORY. Na verão 3 use TYPE=MEMORY

CREATE TEMPORARY TABLE exemplo(
relacao de campos
)TYPE=MEMORY
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Já não lembro muito do mysql 3, mas vamos acompanhar para tentarmos resolver.
As interrogações são só um exemplo para demonstrar parâmetros?
Você já tentou em um banco de teste colocar um valor literal e ver a resposta?
Para tabela temporária crie a mesma estrutura da tabela atual colocando o engine MEMORY. Na verão 3 use TYPE=MEMORY

CREATE TEMPORARY TABLE exemplo(
relacao de campos
)TYPE=MEMORY

Olá Denis, olha so esse query eu consegui fazer a muito tempo atrás e por coincidência foi você que me ajudou, na época eu não sabia que podia fazer vários AND dentro do ON do INNER JOIN do UPDATE.

Então vamos lá!

As interrogações são preparedstatement que vem os valores pela aplicação, é isso que você tava pensando mesmo!

Como assim valores literais? não sei como seriam!

Att

Tércio

Link para o comentário
Compartilhar em outros sites

  • 0

Técio, não há como utilizar prepared statments em vesões anteriores a 5.0 do mysql.

Assim como storage procedures, trigers e functions.

Você deverá usar outro recurso de sql para realizar esta tarefa.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Denis, entendi.

Só que mesmo atribuindo valores diretamente da seguinte maneira não passa:

update tbllancnbm2 as l2
inner join tbllanc as l
on (l2.lanca_lnbm = l.numer_lanc and l2.codig_empr = l.codig_empr and l2.mescp_lnbm = l.MESCP_LANC and l2.ANOCP_LNBM = l.ANOCP_LANC)
set l2.tabeb_lnbm = '00'
where l2.codig_empr = 0044 and l2.mescp_lnbm = 09 and l2.ANOCP_LNBM = 2014 and l.espec_lanc = 'ECF';
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...