Dalam enjin storan InnoDB MySQL, kunci utama biasanya dinaikkan secara automatik. Walau bagaimanapun, adalah mungkin untuk menambah kunci bukan utama secara automatik juga.
Skema pangkalan data termasuk dua jadual: "book_comments" dan "book_comments_votes." Jadual "book_comments" mempunyai lajur bukan kunci utama "comment_id" yang perlu ditambah secara automatik untuk konsisten dengan jadual "book_comments_votes", yang mengandungi rujukan kepada "comment_id" sebagai kunci utamanya.
Untuk menambah automatik kunci bukan utama, ia mesti diisytiharkan sebagai indeks. Berikut ialah contoh:
<code class="mysql">CREATE TABLE `book_comments` ( `book_id` MEDIUMINT NOT NULL, `timestamp` MEDIUMINT NOT NULL, `user_id` MEDIUMINT NOT NULL, `vote_up` SMALLINT, `vote_down` SMALLINT, `comment` TEXT, `comment_id` MEDIUMINT NOT NULL AUTO_INCREMENT, PRIMARY KEY (`book_id`, `timestamp`, `user_id`), KEY `comment_id` (`comment_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;</code>
Walaupun mencipta indeks ringkas pada kunci bukan utama ialah penyelesaian yang paling mudah, beberapa alternatif wujud:
Walau bagaimanapun, penyelesaian yang disyorkan kekal untuk mencipta indeks unik pada kunci bukan utama dan mengelakkan kelemahan alternatif. Pendekatan ini memberikan kedua-dua kesederhanaan dan integriti tanpa mengorbankan prestasi atau kecekapan penyimpanan data.
Atas ialah kandungan terperinci Bolehkah Anda Auto Tambah Kekunci Bukan Utama dalam MySQL InnoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!