Eu tenho uma pergunta do MySQL que acho que deve ser bastante fácil. Preciso retornar o LAST INSERTED ID da tabela1 quando executo a seguinte consulta MySql:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Como você pode entender, o código atual retornará apenas o ID da ÚLTIMA INSERÇÃO da tabela2 em vez da tabela1, como posso obter o ID da tabela1 mesmo se eu inserir na tabela2 entre?
mysql
insert
last-insert-id
Martin
fonte
fonte
Como você realmente armazenou o LAST_INSERT_ID () anterior na segunda tabela, é possível obtê-lo a partir daí:
fonte
Isso permite que você insira uma linha em 2 tabelas diferentes e cria uma referência para as duas tabelas também.
fonte
Eu tive o mesmo problema no bash e estou fazendo algo parecido com isto:
que funciona bem :-) Mas
não trabalha Porque após o primeiro comando, o shell será desconectado do mysql e novamente registrado para o segundo comando, e a variável @last_insert_id não será mais definida. Minha solução é:
Talvez alguém esteja procurando uma solução, uma festança :-)
fonte
LAST_INSERT_ID
disponível apenas para a conexão ativa.#mysq
O comando connect para todos os comandos. Você pode se conectar com omysql
comando para o servidor e inserir suas perguntas, ou você pode criar um arquivo de texto e você omysql
comando com redirecionamento de arquivo txt akamysql [connection option] < txt.file
Como temos apenas uma pessoa inserindo registros, eu executo a seguinte consulta imediatamente após a inserção:
Isso recupera o último ID do banco de dados.
fonte
Para nenhuma solução InnoDB: você pode usar um procedimento
don't forgot to set the the delimiter for storing the procedure with ;
E você pode usá-lo ...
fonte
Seria possível salvar a variável last_id_in_table1 em uma variável php para usá-la mais tarde?
Com este last_id, preciso anexar alguns registros em outra tabela com este last_id, então preciso:
1) Faça um INSERT e obtenha o last_id_in_table1
2) Para qualquer linha indeterminada em outra tabela, ATUALIZE essas linhas com o last_id_insert gerado na inserção.
fonte
Em vez disso,
LAST_INSERT_ID()
tente usar estefonte
Por último e segundo último:
fonte
Apenas para adicionar à postagem de Rodrigo, em vez de LAST_INSERT_ID () na consulta, você pode usar SELECT MAX (id) FROM tabela1 ;, mas você deve usar (),
fonte
Se você precisar do mysql, após a sua consulta, o último ID incremental automático sem outra consulta, insira seu código:
fonte