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

MySQL PILIH LAST_INSERT_ID() untuk kunci majemuk. Apa itu mungkin?

Ya. Anda tidak dapat memiliki beberapa bidang kenaikan otomatis dalam satu tabel.

CREATE TABLE foo (
  id1 int(11) NOT NULL auto_increment,
  id2 int(11) NOT NULL default '0',
  PRIMARY KEY  (id1, id2)
);

INSERT INTO foo VALUES (DEFAULT, 2);

SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1

LAST_INSERT_ID() mengembalikan nilai hanya untuk kolom yang dideklarasikan AUTO_INCREMENT . Tidak ada fungsi untuk mengembalikan nilai dalam kunci utama majemuk yang bukan dihasilkan oleh sistem. Anda seharusnya sudah mengetahui nilai itu, karena Anda baru saja memberikannya dalam INSERT penyataan. Kasus yang sulit adalah ketika pemicu atau sesuatu menimpa nilainya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. seberapa amankah pernyataan yang disiapkan PDO?

  2. Mengonversi Objek menjadi String di PHP

  3. Permintaan SQL LIKE gagal - kesalahan fatal dalam pernyataan yang disiapkan

  4. Adakah cara untuk memilih dari tabel MySQL di mana bidang diakhiri dengan karakter/angka tertentu?

  5. MySQL beberapa kolom dalam klausa IN