Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Auto-Increment pada Lajur Kunci Utama Menengah dalam MySQL?
Dalam situasi di mana mengekalkan integriti data adalah penting, menggunakan dua lajur sebagai kunci utama boleh menjadi cara yang sesuai pendekatan. Walau bagaimanapun, cabaran mungkin timbul apabila cuba menetapkan kenaikan automatik pada salah satu lajur berdasarkan nilai tertentu dalam lajur yang lain.
Untuk pengguna MySQL, terdapat dua pilihan untuk dipertimbangkan semasa menangani isu ini:
Untuk jadual dengan enjin MyISAM, anda boleh memanfaatkan Atribut AUTO_INCREMENT pada lajur kedua dalam indeks berbilang lajur. Nilai kenaikan automatik untuk lajur sekunder dikira seperti berikut:
MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
Teknik ini membolehkan anda mengumpulkan data ke dalam set tersusun berdasarkan nilai dalam lajur awalan.
Pertimbangkan jadual berikut bernama mytable dengan dua lajur kunci utama, database_id dan table_id:
CREATE TABLE mytable ( database_id MEDIUMINT NOT NULL, table_id MEDIUMINT NOT NULL AUTO_INCREMENT, other_column CHAR(30) NOT NULL, PRIMARY KEY (database_id,table_id) ) ENGINE=MyISAM;
Memasukkan data ke dalam jadual saya secara automatik akan menambah table_id untuk setiap nilai database_id unik:
INSERT INTO mytable (database_id, other_column) VALUES (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo');
Apabila anda mendapatkan semula data daripada jadual, baris akan disusun berdasarkan kedua-dua lajur database_id dan table_id:
SELECT * FROM mytable ORDER BY database_id,table_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 Melaksanakan Auto-Increment pada Lajur Kunci Utama Menengah dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!