Rumah >pangkalan data >tutorial mysql >Bagaimanakah MySQL ON DUPLICATE KEY UPDATE Boleh Mengembalikan ID Baris Terjejas?

Bagaimanakah MySQL ON DUPLICATE KEY UPDATE Boleh Mengembalikan ID Baris Terjejas?

Susan Sarandon
Susan Sarandonasal
2024-12-16 18:49:18535semak imbas

How Can MySQL's ON DUPLICATE KEY UPDATE Return the Affected Row ID?

Bolehkah MySQL ON DUPLICATE KEY Mengembalikan ID Terakhir Dimasukkan atau Dikemas kini?

Dalam MySQL, pernyataan INSERT ... ON DUPLICATE KEY UPDATE membenarkan operasi memasukkan atau mengemas kini dalam satu pertanyaan. Walau bagaimanapun, mendapatkan ID baris yang terjejas mungkin mencabar.

Biasanya, fungsi LAST_INSERT_ID() mengembalikan ID rekod yang baru dimasukkan. Selepas operasi kemas kini, ia kekal tidak bermakna. Untuk menyelesaikan masalah ini, anda boleh memanfaatkan ungkapan dengan LAST_INSERT_ID(), seperti yang diterangkan oleh dokumentasi MySQL.

Khususnya, buat ungkapan yang mengemas kini medan id (lajur AUTO_INCREMENT dalam contoh ini) dan termasuk LAST_INSERT_ID(expr ) sebagai ungkapan untuk menjadikannya bermakna bagi kemas kini.

Contoh:

Pertimbangkan jadual dengan lajur id sebagai AUTO_INCREMENT. Untuk mengemas kini atau memasukkan baris dan mendapatkan semula ID yang terjejas:

INSERT INTO table (a, b, c) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;

Pendekatan ini memastikan LAST_INSERT_ID() menyediakan ID baris yang terjejas, tanpa mengira operasi sisipan atau kemas kini, menghapuskan keperluan untuk pertanyaan kedua untuk mendapatkan ID.

Atas ialah kandungan terperinci Bagaimanakah MySQL ON DUPLICATE KEY UPDATE Boleh Mengembalikan ID Baris Terjejas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn