Ver Mensaje Individual
  #10  
Antiguo 14-05-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Reputación: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Se supone que está correcto, ¿no?

http://mysql.conclase.net/curso/?sqlfun=LAST_INSERT_ID

Cita:
El último ID que fue generado se mantiene en el servidor en una base por conexión. Esto significa que el valor que devuelve la función para un cliente dado es valor AUTO_INCREMENT más reciente generado por ese cliente. El valor no puede verse afectado por otros clientes, aunque generen valores AUTO_INCREMENT por si mismos. Este comportamiento asegura que se puede recuperar un ID sin preocuparse por la actividad de otros clientes, y sin necesidad de bloqueos o transacciones. El valor de LAST_INSERT_ID() no cambia si se actualiza una columna AUTO_INCREMENT de una fila con un valor no mágico (es decir, un valor que no es NULL ni 0). Si se insertan muchas filas al mismo tiempo con una sentencia , LAST_INSERT_ID() devuelve el valor para la primera fila insertada. El motivo para esto es hacer posible reproducir más fácilmente la misma sentencia de nuevo en algún otro servidor. Si se da un argumento expr a LAST_INSERT_ID(), el valor del argumento será devuelto por la función, y se asigna como siguiente valor a retornar por LAST_INSERT_ID(). Esto se puede usar para simular secuencias:
Primero crear la tabla:
mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES (0); Después la tabla se puede usar para generar secuencias de números como esta:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1); Se pueden generar secuencias sin llamar a LAST_INSERT_ID(), pero al utilidad de usar la función de este modo es que el valor ID se mantiene en el servidor como el último valor generado automáticamente (seguro en multiusuario). Se puede recuperar el nuevo ID como si se recuperase cualquier valor AUTO_INCREMENT normal en MySQL. Por ejemplo, LAST_INSERT_ID() (sin argumentos) devolverá el nuevo ID. La función del API C mysql_insert_id también se puede usar para obtener el valor. mysql_insert_id sólo se actualiza después de sentencias y , de modo que no se puede usar la función del API C para recuperar el valor para LAST_INSERT_ID(expr) después de ejecutar otra sentencia SQL como o .


Última edición por Casimiro Notevi fecha: 15-05-2015 a las 11:09:04.
Responder Con Cita