Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() gibt 0 zurück, nachdem die vorbereitete Anweisung verwendet wurde

LAST_INSERT_ID würde nur für automatisch generierte Primärschlüssel funktionieren, die im Feld auto_increment erstellt wurden. In Ihrem Fall sieht es so aus, als würden Sie die ID explizit angeben, sodass die letzte Einfügungs-ID nicht festgelegt ist.

Dies ist explizit:

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)

Dies ist implizit:

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)