sql >> Databasteknik >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() returnerar 0 efter att ha använt förberedd sats

LAST_INSERT_ID skulle bara fungera för autogenererad primärnyckel, som skapades i auto_increment-fältet. I ditt fall ser det ut som att du anger id:t uttryckligen, så id för sista insättning är inte inställt.

Detta är explicit:

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)

Detta är 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. Mysql konvertera en int till MAC

  2. Hur kontrollerar jag om DataReader-värdet inte är null?

  3. Oracle FOR LOOP SELECT Statement Exempel

  4. Analysera JSON i TSQL