Fala Fera!
Hoje vamos conhecer uma função nativa do MySQL que pode ser muito útil no seu dia-a-dia com este banco de dados.
A função LAST_INSERT_ID é usada para obter o valor gerado automaticamente pelo campo de autoincremento de uma tabela após a inserção de um novo registro. Ela retorna o último valor inserido para uma coluna de autoincremento na mesma conexão.
A sintaxe básica da função LAST_INSERT_ID é a seguinte:
SQLLAST_INSERT_ID
;
Quando chamada a função retorna o último valor gerado automaticamente para qualquer tabela na mesma conexão.
Aqui está um exemplo de uso em uma stored procedure:
SQLDELIMITER $$ CREATE PROCEDURE cadastra_pessoa(IN nome_pessoa VARCHAR(50), OUT id_pessoa INT) BEGIN -- Insere um novo registro na tabela "pessoas" INSERT INTO pessoas (nome) VALUES (nome_pessoa); -- Armazena o ID gerado automaticamente na variável de saída SET id_pessoa = LAST_INSERT_ID(); SELECT id_pessoa; -- Retorna a variável de saída, no fim da procedure END$$ DELIMITER ;
Para chamar essa stored procedure executando o seguinte comando:
SQLCALL cadastra_pessoa('João',@saida);
Nesse caso, ao executar a procedure, ela irá retornar o valor do ID da pessoa. Observe que a função LAST_INSERT_ID retorna o último valor gerado na mesma conexão. Portanto, se houver outras operações de inserção na mesma conexão antes de chamar LAST_INSERT_ID, o valor retornado será o do último registro inserido nessa conexão, não necessariamente na tabela "pessoas" ou na stored procedure em questão.
Além disso, a função só retorna valores válidos após a execução de uma instrução INSERT que gere um novo valor de autoincremento. Portanto, se nenhum registro tiver sido inserido anteriormente ou se a instrução INSERT falhar, a função LAST_INSERT_ID retornará 0.
Essa função pode ser usada em:
- STORED PROCEDURES
- LOGO APÓS UM INSERT
- EM OUTRAS FUNÇÕES CRIADAS POR VOCÊ
Já conhece meu canal no YouTube? Clique aqui e aprenda ainda mais conteúdos sobre bancos da dados.
Nenhum comentário:
Postar um comentário