Tengo una pregunta de MySQL que creo que debe ser bastante fácil. Necesito devolver la última ID INSERTADA de la tabla 1 cuando ejecuto la siguiente consulta MySql:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Como puede entender, el código actual solo devolverá la ÚLTIMA ID DE INSERCIÓN de table2 en lugar de table1, ¿cómo puedo obtener la identificación de table1 incluso si inserto en table2 entre?
mysql
insert
last-insert-id
Martín
fuente
fuente
Como realmente almacenó el LAST_INSERT_ID () anterior en la segunda tabla, puede obtenerlo desde allí:
fuente
Esto le permite insertar una fila en 2 tablas diferentes y también crea una referencia a ambas tablas.
fuente
Tuve el mismo problema en bash y estoy haciendo algo como esto:
que funciona bien :-) Pero
no trabajes Porque después del primer comando, el shell se cerrará sesión en mysql y se volverá a iniciar sesión para el segundo comando, y luego la variable @last_insert_id ya no estará configurada. Mi solución es:
Tal vez alguien está buscando una solución un bash :-)
fuente
LAST_INSERT_ID
solo disponible para la conexión activa.#mysq
-command conecta para cada comando. Puede conectarse con elmysql
comando al servidor e insertar sus consultas, o puede crear un archivo de texto y usted elmysql
comando con la redirección desde el archivo txt akamysql [connection option] < txt.file
Solo tenemos una persona ingresando registros, por lo que ejecuto la siguiente consulta inmediatamente después de la inserción:
Esto recupera la última identificación de la base de datos.
fuente
Para ninguna solución de InnoDB: puede usar un procedimiento
don't forgot to set the the delimiter for storing the procedure with ;
Y puedes usarlo ...
fuente
¿Sería posible guardar la variable last_id_in_table1 en una variable php para usarla más tarde?
Con este last_id necesito adjuntar algunos registros en otra tabla con este last_id, así que necesito:
1) Haga un INSERT y obtenga el last_id_in_table1
2) Para cualquier fila indeterminada en otra tabla, ACTUALIZANDO estas filas con el last_id_insert generado en la inserción.
fuente
En lugar de esto,
LAST_INSERT_ID()
intente usar estefuente
Para el último y el segundo último:
fuente
Solo para agregar para la publicación de Rodrigo, en lugar de LAST_INSERT_ID () en la consulta, puede usar SELECT MAX (id) FROM table1 ;, pero debe usar (),
fuente
Si necesita tener de mysql, después de su consulta, la última identificación incremental automática sin otra consulta, ingrese su código:
fuente