sql >> Databáze >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() vrátí 0 po použití připraveného příkazu

LAST_INSERT_ID by fungovalo pouze pro automaticky generovaný primární klíč, který byl vytvořen v poli auto_increment. Ve vašem případě to vypadá, že id zadáváte explicitně, takže poslední vložené id není nastaveno.

Toto je jasné:

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)

Toto je implicitní:

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. Jak změním heslo uživatele root v MySQL?

  2. MySQL:Získávání sloupců podle priorit hodnoty

  3. Jak zabránit někomu v návratu na předchozí stránku?

  4. Definujte kroky pro SQL Server Cursor - SQL Server / TSQL výukový program