Rumah > Artikel > pangkalan data > Bagaimana untuk Mencegah Penambahan Auto InnoDB pada Kemas Kini Kunci Pendua?
Kawalan Peningkatan Auto InnoDB pada Kekunci Duplikat
Enjin InnoDB MySQL menyediakan ciri kunci utama yang meningkat secara automatik untuk jadual, menjana pengecam unik secara automatik untuk setiap baris. Walau bagaimanapun, secara lalai, InnoDB juga menambah kunci utama pada kemas kini kunci pendua, yang membawa kepada nilai tidak berturut-turut.
Mengelakkan Peningkatan Auto pada Pendua
Untuk mengelakkan isu ini dan mengekalkan nilai autokenaikan berturut-turut, anda boleh mengubah suai pilihan konfigurasi innodb_autoinc_lock_mode. Dengan menetapkannya kepada "0", anda bertukar kepada mod penguncian autokenaikan "tradisional", yang memastikan bahawa nilai berturut-turut diberikan kepada lajur AUTO_INCREMENT walaupun untuk kemas kini kunci pendua.
Mengkonfigurasi Auto-InnoDB Mod Penambahan
Tetapkan nilai innodb_autoinc_lock_mode dalam fail konfigurasi MySQL anda, biasanya terletak di /etc/my.cnf atau /my.ini.
[mysqld] innodb_autoinc_lock_mode=0
Struktur Jadual dan Contoh Pertanyaan
Struktur jadual dan pertanyaan anda dalam konteks yang disediakan adalah seperti berikut:
CREATE TABLE IF NOT EXISTS `table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `field1` varchar(200) NOT NULL, `field2` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `field1` (`field1`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; INSERT INTO table ( field1, field2 ) VALUES (:value1, :value2) ON DUPLICATE KEY UPDATE field1 = :value1, field2 = :value2
Dengan innodb_autoinc_lock_mode ditetapkan kepada "0," pertanyaan ini akan mengemas kini rekod pendua tanpa penambahan lajur id, memastikan nilai berturut-turut untuk sisipan baharu.
Awas:
Perhatikan bahawa bergantung pada ID autokenaikan berturut-turut dalam aplikasi anda bukanlah amalan yang baik. Nilai kenaikan automatik bertujuan untuk memberikan pengecam unik dan tidak boleh digunakan untuk tujuan pesanan atau pengisihan.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Penambahan Auto InnoDB pada Kemas Kini Kunci Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!