Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan ID Autoincrement daripada Penyata Disediakan?

Bagaimana untuk Mendapatkan ID Autoincrement daripada Penyata Disediakan?

DDD
DDDasal
2024-11-19 21:04:02462semak imbas

How to Retrieve Autoincrement ID from Prepared Statements?

Mengambil ID Autoincrement daripada Penyata Disediakan

Apabila melaksanakan pertanyaan menggunakan pernyataan yang disediakan, adalah wajar untuk mendapatkan ID yang dijana secara automatik yang dikaitkan dengan baris yang baru dimasukkan. Ini boleh dilakukan menggunakan pernyataan yang disediakan, tetapi memerlukan sedikit pengubahsuaian kepada pendekatan tradisional.

Dalam kaedah tradisional, pemalar AutoGeneratedKeys digunakan dengan kaedah executeUpdate() bagi objek Pernyataan. Walau bagaimanapun, pendekatan ini tidak boleh digunakan untuk kenyataan yang disediakan. Sebaliknya, langkah berikut boleh diambil:

  1. Nyatakan Penyata.RETURN_GENERATED_KEYS bendera sebagai parameter kedua kepada kaedah prepareStatement(). Ini memberitahu pangkalan data bahawa pertanyaan akan menghasilkan kunci yang dijana secara automatik.
  2. Laksanakan pernyataan yang disediakan menggunakan kaedah executeUpdate() seperti biasa.
  3. Dapatkan semula kunci yang dijana menggunakan kaedah getGeneratedKeys() bagi pernyataan yang disediakan.
  4. Lelaran pada set hasil dan dapatkan semula ID yang dijana secara automatik.

Berikut ialah coretan kod diubah suai yang menunjukkan pendekatan ini:

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

stmt.executeUpdate();
if (returnLastInsertId) {
   ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
   auto_id = rs.getInt(1);
}

Dengan mengikut langkah-langkah ini, anda boleh berjaya mendapatkan ID yang dijana secara automatik daripada pernyataan yang disediakan, membolehkan anda mengakses pengecam unik baris yang baru dimasukkan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Autoincrement daripada Penyata Disediakan?. 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