«

»

Sep 16

Print this Post

Como pegar a chave primária de um registro adicionado ao database?

Muitas pessoas usam tabelas de banco de dados com chaves primárias de autonumeração. Estas são as colunas (normalmente chamadas “id”) que o banco de dados irá lhes fornecer um valor simplesmente adicionando um valor maior que o passado. Portanto, se o último registro inserido tinha um valor de identificação de 5, o próximo será de 6. (Note que nem sempre isso é verdade. Você não pode assumir o valor seguinte será um maior valor que o passado.) Se você precisa descobrir qual é o valor foi usado para a chave primária, ColdFusion fornece uma maneira simples de fazer isso.

Para usar este recurso, primeiro você deve fornecer o  atributo result da tag cfquery. Isto diz ColdFusion para salvar informações sobre a consulta na  variável nomeada pelo atributo result.


<cfquery datasource="foo" result="result">
     insert into people(name,email)
     values("Paris Hilton", "trash@celebs.com")
</cfquery>

Depois de executar essa query uma estrutura denominada result será criada. A maioria das chaves desta estrutura são definidas, incluindo o SQL da consulta, RecordCount e outros valores, no entanto, há uma chave especial que irá armazenar o valor da chave primária atribuído à inserção. Infelizmente, este valor da chave irá variar dependendo do banco. Para o SQL Server, o valor será na chave IDENTITYCOL. Para o Oracle, o valor será na chave ROWID. Para Sybase, o valor será na chave SYB_IDENTITY. Para Informix, o valor será na chave SERIAL_COL. Para o MySQL, o valor será na chave GENERATED_KEY.

Usando a query acima como exemplo e assumindo MySQL, voce pode exibir o valor da chave primária assim:


<cfoutput>
The ID of the row I just inserted was #result.generated_key#.
</cfoutput>

by Raymond Camden

Permanent link to this article: http://ensina.me/coldfusion/como-pegar-a-chave-primaria-de-um-registro-adicionado-ao-database/

Leave a Reply