Tecnología

Inicio

Cómo recuperar un valor de identidad después de una inserción

Cómo recuperar un valor de identidad después de una inserción


Cuando un nuevo disco se ha insertado en una base de datos, un usuario a menudo quiere recuperar el valor de identidad (o el id) de la última fila. Este valor es a menudo necesaria para agregar un vínculo, o de clave externa, a otra tabla de base de datos. El valor de identidad se puede lograr mediante el uso de SQL para recuperar el valor nuevo. Esto se puede hacer, en SQL Server, usando la misma consulta SQL, lo que ayuda a ahorrar recursos, ya que tiene que ser llamado sólo una consulta. En MySQL, el campo de identidad se recupera mediante funciones.

Instrucciones

El uso de SQL Server

1 Abrir un programa editor de SQL.

2 Agregue el código siguiente:

Los valores INSERT INTO MyTable (MyColumn) ( "AnyValue")

Esto insertará la nueva fila de datos.

3 Añadir código para recuperar la columna de identidad de la nueva fila:

SELECT NEWID = SCOPE_IDENTITY ()

Desde la introducción de SQL Server 2000, esta función se ha añadido y es más precisa que la @@ IDENTITY, que se utilizó antes de esto.

Utilizando la base de datos MySQL

4 Abrir un programa editor de MySQL.

5 Compruebe que la columna de identidad, en la tabla de base de datos, utiliza la función AUTO_INCREMENT. Si inserta un registro en una tabla que contiene esta, se puede obtener el valor almacenado en esa columna llamando a la función LAST_INSERT_ID () mysql_insert_id () o.

6 Agregue el código siguiente, para actualizar automáticamente otra mesa, con la identidad de la nueva fila de la primera tabla:

INSERT INTO MyFirstTable (automático, texto)

VALUES(NULL,'text'); # generate ID by inserting NULL

INSERT INTO MySecondTable (id, texto)

VALUES(LAST_INSERT_ID(),'text'); # use ID in second table

El campo de identidad crea automáticamente en la primera tabla se llama usando el "LAST_INSERT_ID) (" función. Esto se inserta en la tabla "MySecondTable."

Si desea utilizar el campo de Identidad en el código PHP, obtener el nuevo campo de identidad utilizando el siguiente código de función de MySQL:

used_id = mysql_insert_id (y MySQL);

El uso de base de datos Access

7 Abrir un programa editor de SQL.

8 Agregue la siguiente instrucción SQL:

Los valores INSERT INTO MyTable (MyColumn) ( "AnyValue")

Esto inserta una nueva fila en una tabla de base de datos.

9 Añadir un código para devolver el campo de Identidad para la nueva fila:

SELECT @@ IDENTITY

La instrucción de inserción y de esta declaración, de la etapa anterior, se pueden introducir en la misma consulta. Esto significa que sólo hay una llamada se hace sobre la base de datos y ahorrará recursos en el servidor de base de datos.