sql >> Database teknologi >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() returnerer 0 efter brug af forberedt sætning

LAST_INSERT_ID ville kun fungere for automatisk genereret primær nøgle, der blev oprettet i auto_increment-feltet. I dit tilfælde ser det ud til, at du angiver id'et eksplicit, så sidste indsættelses-id er ikke angivet.

Dette er eksplicit:

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)

Dette er implicit:

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)


  1. Få den næsthøjeste værdi i en MySQL-tabel

  2. Fatal fejl:Kald til udefineret funktion getsqlvaluestring()

  3. MySQL - Problemer med at oprette brugerdefineret funktion (UDF)

  4. Korrekthed og begrænsninger