14 de jun. de 2023

Funções do MySQL que você precisa conhecer #1: LAST_INSERT_ID

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:

SQL
LAST_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:


SQL
DELIMITER $$ 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 ;

Neste exemplo, a stored procedure "cadastra_pessoa" insere um novo registro na tabela "pessoas", que possui uma coluna de autoincremento chamada "id" e uma coluna "nome". A função LAST_INSERT_ID é usada para obter o ID gerado automaticamente para o novo registro e armazená-lo na variável de saída "id_pessoa".

Para chamar essa stored procedure executando o seguinte comando:

SQL
CALL 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