Rumah > Artikel > pangkalan data > Bagaimana untuk melaksanakan kunci utama komposit dengan lajur kenaikan automatik dalam MySQL?
Melaksanakan Kunci Utama Komposit dengan Peningkatan Auto dalam MySQL
Jadual MySQL InnoDB menyokong kunci utama komposit, membolehkan pengenalpastian baris unik menggunakan berbilang lajur . Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa hanya satu lajur boleh dinaikkan secara automatik dan ia mesti dinyatakan sebagai sebahagian daripada takrifan kunci utama.
Apabila cuba mencipta kunci utama komposit dengan satu lajur kenaikan automatik dan dua kunci asing, pengguna mungkin menghadapi ralat yang menyatakan "ERROR 1075: Takrif jadual yang salah; hanya boleh ada satu lajur auto dan ia mesti ditakrifkan sebagai kunci".
Untuk mengatasi isu ini dan melaksanakan komposit yang diingini kunci utama, pencetus atau prosedur biasanya disyorkan. Walau bagaimanapun, untuk kesederhanaan, pendekatan alternatif ialah menggunakan pencetus MySQL berikut:
<code class="sql">DELIMITER $$ CREATE TRIGGER xxx BEFORE INSERT ON issue_log FOR EACH ROW BEGIN SET NEW.sr_no = ( SELECT IFNULL(MAX(sr_no), 0) + 1 FROM issue_log WHERE app_id = NEW.app_id AND test_id = NEW.test_id ); END $$ DELIMITER ;</code>
Pencetus ini secara automatik mengira dan memberikan nilai 'sr_no' yang meningkat untuk baris baharu yang berkongsi 'app_id' dan 'test_id' yang sama ' nilai. Dengan melaksanakan pencetus ini, anda boleh mencapai kunci utama komposit yang dikehendaki dengan lajur kenaikan automatik.
Ingat, pencetus memerlukan pengendalian yang betul untuk memastikan integriti data dan mengelakkan keadaan perlumbaan. Adalah disyorkan untuk menguji dan mengekalkan pencetus secara menyeluruh untuk mengelakkan sebarang kelakuan yang tidak dijangka atau kesesakan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kunci utama komposit dengan lajur kenaikan automatik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!