Mengakses ID Baris Terbaharu Ditambah dalam SQL
Selepas memasukkan data baharu ke dalam jadual pangkalan data, anda selalunya perlu mendapatkan ID baris baharu yang dijana secara automatik. Artikel ini menunjukkan beberapa kaedah SQL untuk mendapatkan ID ini, mengelakkan keperluan untuk jadual sementara.
SKOP_IDENTITI()
Untuk jadual dengan lajur INT
atau BIGINT
ditetapkan sebagai lajur identiti, SCOPE_IDENTITY()
mendapatkan ID dengan cekap selepas pernyataan INSERT
. Begini caranya:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT SCOPE_IDENTITY()</code>
Ini mengembalikan nilai identiti yang paling baru dimasukkan dalam skop semasa (yang boleh dipengaruhi oleh transaksi bersarang).
@@IDENTITI
@@IDENTITY
ialah pembolehubah global yang memegang nilai identiti yang terakhir diberikan. Gunakannya seperti ini:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT @@IDENTITY</code>
Walau bagaimanapun, @@IDENTITY
mencerminkan nilai identiti terakhir merentas semua skop, berpotensi termasuk sisipan awal dalam transaksi bersarang. Ini mungkin memberikan hasil yang salah jika berbilang sisipan berlaku dalam sesi yang sama.
IDENT_CURRENT()
IDENT_CURRENT()
menyediakan pilihan lain. Ia mendapatkan semula nilai identiti untuk jadual tertentu, tanpa mengira skop atau transaksi:
<code class="language-sql">INSERT INTO dbo.YourTable(columns....) VALUES(..........) SELECT IDENT_CURRENT('dbo.YourTable')</code>
IDENT_CURRENT()
menjamin ID adalah daripada jadual yang ditentukan, walaupun dengan berbilang sisipan dalam transaksi bersarang.
Ringkasan
Pembangun pangkalan data perlu memahami kaedah berbeza ini untuk mendapatkan ID baris terakhir yang dimasukkan. Memilih kaedah yang betul, berdasarkan struktur jadual anda dan konteks operasi anda, memastikan pengambilan ID yang tepat dan mengekalkan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula ID Baris Terakhir yang Disisipkan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!