Jurang dalam nilai lajur SQL Server IDENTITY: Memahami sifat IDENTITY
Memasukkan rekod ke dalam jadual dengan lajur IDENTITI yang meningkat secara automatik tidak selalu menghasilkan nilai ID berturut-turut. Perbezaan ini adalah hasil daripada ciri-ciri yang wujud pada sifat IDENTITY.
Penghadan atribut IDENTITI:
-
Bukan keunikan: Lajur IDENTITI sendiri tidak menguatkuasakan keunikan nilai. Kekangan tambahan, seperti PRIMARY KEY atau UNIQUE, mesti digunakan untuk memastikan satu nilai tanpa pendua.
-
Nilai urus niaga bukan bersebelahan: Sisipan serentak mungkin mengganggu susunan nilai IDENTITY dalam transaksi.
-
Jurang selepas kegagalan pelayan: SQL Server mungkin cache nilai IDENTITI untuk prestasi, yang mungkin menyebabkan nilai hilang semasa pelayan dimulakan semula atau kegagalan, mewujudkan jurang dalam jujukan.
-
Pencegahan penggunaan semula nilai: Nilai IDENTITI tidak digunakan semula dalam kombinasi benih/kenaikan tertentu walaupun selepas kegagalan sisipan atau rollback. Ini boleh menyebabkan jurang.
Jurang pengurusan:
-
Elakkan pembentukan jurang: Pemadaman yang kerap dalam jadual dengan lajur IDENTITY boleh menyebabkan jurang. Jika ini adalah masalah, pertimbangkan untuk menggunakan mekanisme penjanaan kunci alternatif.
-
Sisipan nilai eksplisit: Gunakan SET IDENTITY_INSERT ON untuk menentukan nilai eksplisit bagi lajur IDENTITY, tetapi semak nilai sedia ada dahulu untuk memastikan tiada jurang dibuat.
-
Sifat lajur identiti: Pastikan nilai delta lajur Identiti ditetapkan kepada 1 untuk mengekalkan jujukan yang konsisten.
Ingat bahawa walaupun sifat IDENTITY menyediakan nilai peningkatan automatik, ia tidak menjamin keunikan, nilai berterusan atau mengendalikan kegagalan pelayan dengan lancar.
Atas ialah kandungan terperinci Mengapa Jurang Muncul dalam Nilai Lajur IDENTITI SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!