¿Cuál es el equivalente de la función SQLServer SCOPE_IDENTITY () en mySQL?
Esto es lo que estás buscando:
LAST_INSERT_ID()
En respuesta al comentario de OP, creé la siguiente prueba de banco:
CREATE TABLE Foo ( FooId INT AUTO_INCREMENT PRIMARY KEY ); CREATE TABLE Bar ( BarId INT AUTO_INCREMENT PRIMARY KEY ); INSERT INTO Bar () VALUES (); INSERT INTO Bar () VALUES (); INSERT INTO Bar () VALUES (); INSERT INTO Bar () VALUES (); INSERT INTO Bar () VALUES (); CREATE TRIGGER FooTrigger AFTER INSERT ON Foo FOR EACH ROW BEGIN INSERT INTO Bar () VALUES (); END; INSERT INTO Foo () VALUES (); SELECT LAST_INSERT_ID();
Esto devuelve:
+------------------+ | LAST_INSERT_ID() | +------------------+ | 1 | +------------------+
Por lo tanto, usa LAST_INSERT_ID()
de la tabla original y no la tabla INSERT
ed dentro del desencadenador.
Editar: Me di cuenta después de todo este tiempo de que el resultado de SELECT LAST_INSERT_ID()
muestra en mi respuesta era incorrecto, aunque la conclusión al final era correcta. He actualizado el resultado para que sea el valor correcto.
abra el tipo de comando SELECT LAST_INSERT_ID();
luego ENTER