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,