Saya yakin jawaban untuk ini dibahas di MySQL dokumen :
Jika tabel berisi AUTO_INCREMENT
kolom dan INSERT
... UPDATE
menyisipkan baris, LAST_INSERT_ID()
fungsi mengembalikan AUTO_INCREMENT
nilai. Jika pernyataan memperbarui baris sebagai gantinya, LAST_INSERT_ID()
tidak berarti. Namun, Anda dapat mengatasinya dengan menggunakan LAST_INSERT_ID(expr)
. Misalkan id adalah AUTO_INCREMENT
kolom. Untuk membuat LAST_INSERT_ID()
berarti untuk pembaruan, masukkan baris sebagai berikut:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;