Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SELECT LAST_INSERT_ID() mengembalikan 0 setelah menggunakan pernyataan yang disiapkan

LAST_INSERT_ID hanya akan berfungsi untuk kunci utama yang dibuat secara otomatis, yang dibuat di bidang peningkatan_otomatis. Dalam kasus Anda, sepertinya Anda memberikan id secara eksplisit, jadi id sisipan terakhir tidak disetel.

Ini eksplisit:

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)

Ini tersirat:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah mesin penyimpanan tabel dari MyISAM ke InnoDB

  2. Mysql group_concat membatasi baris dalam pengelompokan

  3. InnoDB mySQL tidak dapat mengatur ON DELETE SET DEFAULT'. Bagaimana mengatur?

  4. Perbaiki semua tabel sekaligus

  5. MySQL - Menggunakan If Then Else di MySQL UPDATE atau SELECT Query