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

Inserção com campos duplicados


Rafael Araújo

Pergunta

Pessoal,

Gostaria de compartilhar minha dúvida com vocês, pois quem sabe vocês têm a solução.

Estou inserindo um registro em uma tabela que tem o ID como auto increment. O que acontece é que possuo a necessidade de replicar o ID em outro campo da tabela, porém não consegui fazer isso de maneira eficiente.

Por ex:

ID: 245

Nome: Rafael

ID_pai: 245

O que eu tentei fazer foi antes de inserir verificar o maior ID da tabela, somar 1 e depois inserir nesse campo, mas esse algoritmo falha em boa parte dos casos, pois quando são deletados registros, a tabela não usa mais o ID deles. Ou seja, se os ultimos registros da tabela foram deletados ele vai colocar um ID maior do que o ID_pai, sendo que eu quero que eles sejam iguais. Alguém sabe de algum método ou função que simplesmente replique um campo imprevisivel (ID) em outro campo da tabela?

Obrigado,

Rafael

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O problema é que a utilização do trigger faz com que a tabela fique com essa caracteristica pra sempre, sendo que eu queria que ocorresse isso somente em um caso específico, ou seja, utilizando um IF no PHP. Mas mesmo utilizando o trigger deu erro, porque parece que ele não aceita operações na mesma tabela em que se está inserindo. Utilizei o seguinte código:

CREATE TRIGGER upid AFTER INSERT ON tasks

FOR EACH ROW

UPDATE tasks SET task_parent = NEW.task_id;

E ao inserir qualquer registro recebo a mensagem:

#1442 - Can't update table 'tasks' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Link para o comentário
Compartilhar em outros sites

  • 0

Como é só um caso eu faria assim:

Insere normalmente um registro.

Recupere o registro e faça um update no campo.

Para recuperar voce pode usar algum campo que o permita distinguir dos restantes ou deve ter algum comando no mysql para recuperar o último id inserido.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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