Auto-Peningkatan Menggunakan Kunci Utama Bersama dalam MySQL
MySQL membenarkan penciptaan jadual dengan berbilang kunci utama, tetapi ia tidak secara asli menyokong penambahan automatik pada lajur utama bukan pertama. Untuk menangani perkara ini, pertimbangkan pendekatan berikut untuk mencipta kunci utama bersama dengan kenaikan automatik berdasarkan lajur tertentu:
Enjin MyISAM
Untuk jadual MyISAM, anda boleh tentukan AUTO_INCREMENT pada lajur kedua dalam indeks berbilang lajur. Ini bermakna adalah mungkin untuk menambah automatik pada lajur table_id berdasarkan nilai database_id.
CREATE TABLE mytable ( table_id MEDIUMINT NOT NULL AUTO_INCREMENT, database_id MEDIUMINT NOT NULL, other_column CHAR(30) NOT NULL, PRIMARY KEY (database_id, table_id) ) ENGINE=MyISAM;
Contoh
Menggunakan data sampel anda, anda boleh mencapai yang diingini tingkah laku seperti berikut:
INSERT INTO mytable (database_id, other_column) VALUES (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo'); SELECT * FROM mytable ORDER BY database_id, table_id;
Ini akan menjana ID jadual berdasarkan pangkalan data yang sepadan ID:
+----------+-------------+--------------+ | table_id | database_id | other_column | +----------+-------------+--------------+ | 1 | 1 | Foo | | 2 | 1 | Bar | | 3 | 1 | Bam | | 1 | 2 | Baz | | 2 | 2 | Zam | | 1 | 3 | Zoo | +----------+-------------+--------------+
Atas ialah kandungan terperinci Bagaimana untuk Auto-Naik Lajur Bukan Pertama dalam Kunci Utama Bersama MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!