Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Cómo obtener un campo que se autoincrementa

Estas en el tema de Cómo obtener un campo que se autoincrementa en el foro de Mysql en Foros del Web. Tengo un campo de una tabla que se va auto-incrementando cada vez que hago una insercion (lo uso como identificacion de usuario). Ahora bien, cada ...
  #1 (permalink)  
Antiguo 10/08/2007, 17:56
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 2 meses
Puntos: 2
Cómo obtener un campo que se autoincrementa

Tengo un campo de una tabla que se va auto-incrementando cada vez que hago una insercion (lo uso como identificacion de usuario). Ahora bien, cada vez que hago la insercion, la funcion donde lo hago necesito que devuelva el identificador del usuario, es decir, el numero que se crea "automaticamente". ¿Como hago para saber cuál es y poder devolverlo? gracias.
  #2 (permalink)  
Antiguo 11/08/2007, 07:36
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Cómo obtener un campo que se autoincrementa

Despues del insert lo puedes recuperar con @@Identity


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #3 (permalink)  
Antiguo 11/08/2007, 17:05
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 2 meses
Puntos: 2
Re: Cómo obtener un campo que se autoincrementa

Perdona mi ignorancia, pero como utilizo @@identity?
  #4 (permalink)  
Antiguo 11/08/2007, 21:40
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Cómo obtener un campo que se autoincrementa

Suponiendo que tienes la tabla Datos que tiene los campos Id (Identity) y Valor, el valor identity mas alto actualmente es 500 y haces un insert de la siguiente manera:

Código:
DECLARE @ValIdentity AS INTEGER

INSERT INTO Datos
    (Valor)
VALUES
    ('El valor a insertar')

-- Inmediatamente despues hacemos un @@Identity
SET @ValIdentity = @@IDENTITY

SELECT @ValIdentity AS ID --Desplegamos el valor insertado
La ultima consulta te devolvera 501 como ID

Espero te sirva!

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #5 (permalink)  
Antiguo 13/08/2007, 09:59
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 16 años, 8 meses
Puntos: 0
Sonrisa Re: Cómo obtener un campo que se autoincrementa

Cita:
Iniciado por Gabo77 Ver Mensaje
Suponiendo que tienes la tabla Datos que tiene los campos Id (Identity) y Valor, el valor identity mas alto actualmente es 500 y haces un insert de la siguiente manera:

Código:
DECLARE @ValIdentity AS INTEGER

INSERT INTO Datos
    (Valor)
VALUES
    ('El valor a insertar')

-- Inmediatamente despues hacemos un @@Identity
SET @ValIdentity = @@IDENTITY

SELECT @ValIdentity AS ID --Desplegamos el valor insertado
La ultima consulta te devolvera 501 como ID

Espero te sirva!

Saludos!
hola Gabo77 (como chi verdad jjeje) este codigpo funcia en SQLserver como tambien MySQL?? y @@IDENTITY es una variable??
  #6 (permalink)  
Antiguo 14/08/2007, 20:32
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 6
Re: Cómo obtener un campo que se autoincrementa

@@Identity es una variable, no tengo muy claro si funciona igual en MySQL :s.... puedes probarlo y me cuentas sale?

y no, si yo pensara que como ching.... ni me metiera a estos tipos de foros no crees? ánimo!

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #7 (permalink)  
Antiguo 21/08/2007, 05:55
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
Re: Cómo obtener un campo que se autoincrementa

select last_insert_id() despues del insert o en php mysql_insert_id()
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:02.