Mengatasi Jurang dalam Medan Naik Auto
Tujuan medan kenaikan automatik adalah semata-mata untuk mengenal pasti rekod secara unik dalam pangkalan data. Walaupun nampaknya wajar untuk mengisi ruang yang dicipta oleh rekod yang dipadamkan, berbuat demikian secara amnya dianggap sebagai amalan pangkalan data yang buruk.
Kecacatan dalam Strategi Pengisian Jurang
Percubaan untuk mengisi jurang boleh membawa kepada:
-
Reka bentuk pangkalan data yang cacat: Menunjukkan bahawa ID kenaikan automatik mempunyai perkaitan khusus di luar penggunaannya sebagai pengecam rekod.
-
Ralat manipulasi data: Menukar data secara tidak sengaja atau memperkenalkan ketidakkonsistenan.
Pertimbangan Alternatif
Daripada mengisi jurang, pertimbangkan alternatif berikut:
-
Rizab jurang masa hadapan: Tambahkan jurang yang cukup besar pada penghujung jujukan ID untuk menampung kemungkinan pemadaman masa hadapan.
-
Dokumenkan jurang: Sediakan dokumentasi yang menerangkan maksud jurang, jika ada.
-
Elakkan pemadaman yang tidak perlu: Jika boleh, elakkan pemadaman rekod daripada jadual dengan medan kenaikan automatik.
Memaksa Pengisian Jurang dalam MySQL (Lanjutan)
Jika benar-benar perlu, mengisi jurang dalam MySQL memerlukan prosedur lanjutan:
-
Buat sementara jadual: CIPTA JADUAL SEMENTARA NewIDs(NewID INT UNSIGNED AUTO_INCREMENT, OldID INT UNSIGNED).
-
Isi jadual sementara: INSERT IN TO NewIDs (OldId) Id SELECTOR FDER OldTBY ASC.
-
Kemas kini jadual ibu bapa dan anak: KEMASKINI SET Ibu Bapa, Anak, NewIds Parent.ParentId = NewIds.Id, Child.ParentId = NewIds.Id WHERE Parent.ParentId = NewIds.ParentId DAN Child.ParentId = NewIds.ParentId.
-
Dayakan semula semakan kunci asing: SET foreign_key_checks = 1.
-
Lepaskan jadual sementara: DROP TABLE NewIds.
Walau bagaimanapun, adalah dinasihatkan untuk meneruskan dengan berhati-hati apabila mempertimbangkan pendekatan ini kerana risiko yang wujud.
Atas ialah kandungan terperinci Sekiranya Anda Mengisi Jurang dalam Medan Peningkatan Auto?. 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