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

Obtener primary key en el INSERT

Estas en el tema de Obtener primary key en el INSERT en el foro de Bases de Datos General en Foros del Web. Hola, esta es una pregunta relacionada con el rendimiento.... cuando se hace un INSERT en una tabla en la que se asigna automaticamente un valor ...
  #1 (permalink)  
Antiguo 04/09/2007, 13:09
Avatar de juanra_83  
Fecha de Ingreso: mayo-2007
Ubicación: Gijón - España
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Obtener primary key en el INSERT

Hola,

esta es una pregunta relacionada con el rendimiento....

cuando se hace un INSERT en una tabla en la que se asigna automaticamente un valor al campo Primary Key, es decir, tenemos definido por ejemplo...

Id_User INT(8) NOT NULL AUTOINCREMENT

existe alguna forma de que el insert te devuelva la clave que se le asigna al nuevo registro, sin tener que hacer un select inmediatamente despues para obtenerla????

No se si es posible hacerlo en SQL...alguna idea??

Saludos!!!
  #2 (permalink)  
Antiguo 05/09/2007, 02:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Obtener primary key en el INSERT

Hola,
sql server? no lo he utilizado mucho, pero en otras BDs está implementado el
insert ... returning id_user;

Salud2
  #3 (permalink)  
Antiguo 05/09/2007, 18:47
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Obtener primary key en el INSERT

Pues no se habla de SQL Server explícitamente, aunque ahí no hay forma de hacerlo como buscas. Siempre dependes de hacer una llamada inmediatamente después del insert.

INSERT INTO tabla (campo) VALUES ('campo')

SELECT Scope_Identity()
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 06/09/2007, 02:15
Avatar de juanra_83  
Fecha de Ingreso: mayo-2007
Ubicación: Gijón - España
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: Obtener primary key en el INSERT

Hola,

en mi caso la pregunta era relacionada con Mysql y he encontrado una solución en PHP utilizando la funcion

int mysql_insert_id ( [int identificador_de_enlace] )

No conozco su funciamiento interno, pero supongo que ofrecera un mejor rendimiento que realizar un Select inmediantamente despues del Insert....

Saludos!!
  #5 (permalink)  
Antiguo 06/09/2007, 02:45
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Obtener primary key en el INSERT

Cita:
Iniciado por Mithrandir Ver Mensaje
Pues no se habla de SQL Server explícitamente, aunque ahí no hay forma de hacerlo como buscas. Siempre dependes de hacer una llamada inmediatamente después del insert.
Por eso pregunte, porque AUTOINCREMENT me sonó a sqlserver


juanra_83, no conozco mucho mysql, pero si se asigna automaticamente el valor de una secuencia, tambien puedes:
- capturar el valor de la secuencia
- Insertar con PK igual a ese valor, en lugar de dejar que lo haga automaticamente.
- Ya tienes el valor que querias sin tener que hacer la select.

Un saludo
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 07:15.