Como recuperar um valor de identidade após uma inserção

Escrito por declan maher | Traduzido por milene hermenegildo
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como recuperar um valor de identidade após uma inserção
Um campo de identidade de uma nova linha de dados pode ser recuperado por meio de um código SQL (database on paper image by .shock from Fotolia.com)

Quando um novo registro for inserido em um banco de dados, um usuário, muitas vezes, pode desejar recuperar o valor de identidade (ou o id) da última linha. Este valor é necessário para adicionar um vínculo, ou chave estrangeira, a uma outra tabela do banco de dados. O valor de identidade pode ser obtido no SQL Server, utilizando-se uma consulta SQL, o que vai ajudar a economizar recursos, já que apenas uma consulta é utilizada. No MySQL, o campo de identidade é recuperado usando funções.

Nível de dificuldade:
Desafiante

Outras pessoas estão lendo

O que você precisa?

  • Editor de SQL

Lista completaMinimizar

Instruções

    Usando o SQL Server

  1. 1

    Abra um programa editor de SQL.

  2. 2

    Adicione o seguinte código:

    INSERT INTO MyTable(MyColumn) values("Valores")

    Isso irá inserir a nova linha de dados.

  3. 3

    Adicione o código para recuperar a coluna de identidade para a nova linha: SELECT NEWID = SCOPE_IDENTITY()

    Desde o lançamento do SQL Server 2000, esta função foi adicionada e é mais precisa do que a @@ IDENTITY, que era usada anteriormente.

    Usando um banco de dados MySQL

  1. 1

    Abra um programa editor de MySQL.

  2. 2

    Verifique se a coluna de identidade, na tabela do banco de dados, utiliza a função AUTO_INCREMENT. Se você inserir um registro em uma tabela que contém essa função, pode obter o valor armazenado na coluna chamando as funções MYSQL_INSERT_ID() ou LAST_INSERT_ID() .

  3. 3

    Adicione o seguinte código para automaticamente atualizar outra tabela com a identidade da nova linha da primeira tabela:

    INSERT INTO MinhaPrimeiraTabela (auto,text) VALUES(NULL,'text'); # gera o ID inserindo NULL INSERT INTO MinhaSegundaTabela (id,text) VALUES(LAST_INSERT_ID(),'text'); # usa o ID da segunda tabela

    O campo de identidade criado automaticamente na primeira tabela é chamado usando a função "LAST_INSERT_ID()". Ele é inserido na tabela "MinhaSegundaTabela".

    Se você quiser usar o campo de identidade em um código PHP, obtenha o novo campo de identidade utilizando o seguinte código de função MySQL:

    used_id = mysql_insert_id(&mysql);

    Usando um banco de dados Access

  1. 1

    Abra um programa editor de SQL.

  2. 2

    Adicione a seguinte instrução em SQL:

    INSERT INTO MinhaTabela(MinhaColuna) values("Valores")

    Isso insere uma nova linha em uma tabela do banco de dados.

  3. 3

    Adicione o código abaixo para retornar o campo de identidade para a nova linha:

    SELECT @@IDENTITY

    Essa instrução e a da etapa anterior podem ser colocadas na mesma consulta. Isso significa que apenas uma chamada é feita na base de dados, o que economiza recursos no servidor do banco de dados.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível