Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2011, 16:49
Avatar de rfadgrmm
rfadgrmm
 
Fecha de Ingreso: junio-2009
Mensajes: 74
Antigüedad: 14 años, 10 meses
Puntos: 1
Pregunta mysql_insert_id VS LAST_INSERT_ID

Buenas tardes con todos,

Mi consulta es la siguiente:

Tengo 1 tabla llamada PERSONAS con los siguientes campos:

ID - INT (AUTO INCREMENTO) PRIMARY KEY
Apellidos - VARCHAR
Nombres - VARCHAR


ID | Apellidos | Nombres
=================
1 | MENDOZA | RUBEN
2 | CABRERA | ELSA


Ahora, yo uso consultas de inserción simple:

INSERT INTO personas(Apellidos, Nombres) VALUES('ANYOSA', 'Lucila');

Y con mysql_insert_id() recupero el ID generado en mi tabla, hasta aquí está todo bien.


Ahora se me presenta este caso: Yo deseo hacer inserciones masivas de datos, para optimizar mis procesos en MySQL, tal como esto:

INSERT INTO personas(Apellidos, Nombres) VALUES ('DIAZ', 'Lourdes'), ('ARANA', 'José'), ('AREVALO', 'Cinthya'), ..., ('ANGELES', 'Aleeda');

Y necesito recuperar TODAS las ID's generadas, por que por ejemplo deseo crear una tabla de nombre CORREOS y aplico una relación de uno a varios (una persona puede tener muchos correos). Lo que deseo es recuperar todos los ID's desde 'DIAZ' hasta 'ANGELES', y no se como hacerlo exactamente.

Me dicen que puedo usar LAST_INSERT_ID(). Sin embargo no le encuentro diferencia con mysql_insert_id(). Quizá me esté equivocando; alguien que pueda explicarme y/o ilustrarme con un ejemplo, estaría muy agradecido.

También navegando por la Web, menciona que LAST_INSERT_ID() es más efectivo que mysql_insert_id() para lectura de campos del tipo BIGINT. Tengo otras tablas con ID autonumérico BIGINT, y quisiera también salir de esa duda. Esto más parece un tema de MySQL que de PHP, pero tienen ambos relación, todos los procesos los hago mediante código PHP.

Saludos,
__________________
"Viajando en el espacio profundo, de nova en nova, y sorteando a veces uno que otro agujero negro..." Peru@D