sql >> Base de Datos >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() devuelve 0 después de usar la declaración preparada

LAST_INSERT_ID solo funcionaría para la clave principal generada automáticamente, que se creó en el campo auto_increment. En su caso, parece que está proporcionando la identificación explícitamente, por lo que la última identificación de inserción no está configurada.

Esto es explícito:

mysql> insert into test (id, name) VALUES (5, 'test 2');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

Esto es implícito:

mysql> insert into test (name) values ('test');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                3 |
+------------------+
1 row in set (0.00 sec)