Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mencapai Urutan Auto-Kenaikan Berasingan Berdasarkan Nilai Utama Utama Khusus dalam Pangkalan Data?
Penambahan Auto Berbilang untuk Nilai Utama Utama Tertentu
Soalan:
Bagaimanakah pangkalan data menyediakan kunci kenaikan automatik yang berbeza untuk nilai kunci utama tertentu, supaya setiap nilai kunci utama mempunyai bebasnya sendiri urutan? Sebagai contoh, jika jadual mengandungi lajur "id" dengan autokenaikan dan lajur "uid" untuk ID pengguna, adakah mungkin untuk mempunyai urutan autokenaikan yang berbeza untuk setiap nilai "uid"?
Jawapan:
MySQL dengan MyISAM Enjin
Enjin MyISAM MySQL menyokong fungsi ini. Apabila AUTO_INCREMENT ditentukan pada lajur kedua dalam indeks berbilang lajur, nilai yang dijana untuk lajur AUTO_INCREMENT dikira sebagai MAX(auto_increment_column) 1 WHERE awalan=awalan-diberikan.
Lain-lain Penyelesaian
Kunci Meja Eksklusif
Satu penyelesaian alternatif ialah memperoleh kunci meja eksklusif sebelum mencuba INSERT. Ini menghalang INSERT serentak daripada mewujudkan keadaan perlumbaan. Walau bagaimanapun, ia menyerikan akses kepada jadual, mengehadkan daya pemprosesan.
Penjanaan Id Luaran
Pendekatan lain ialah menjana nombor id di luar skop transaksi, menggunakan mekanisme seperti memcached atau perkhidmatan berpusat. Ini memastikan nilai id yang unik tanpa bergantung pada kefungsian pangkalan data.
Pertimbangan
Melaksanakan fungsi ini memerlukan pertimbangan yang teliti terhadap isu yang berpotensi, seperti:
Penafian:
Enjin InnoDB dalam MySQL tidak menyokong ciri ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Urutan Auto-Kenaikan Berasingan Berdasarkan Nilai Utama Utama Khusus dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!