Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Auto-Tambah Lajur dalam Kunci Utama Berbilang Lajur?
Menggunakan Auto-Tambahan pada Kunci Utama Berbilang Lajur
Mengekalkan integriti data merentas pangkalan data boleh menjadi mencabar. Dengan menggunakan dua lajur sebagai kunci utama komposit, anda boleh memastikan keunikan setiap baris. Walau bagaimanapun, adalah penting untuk mempertimbangkan cara mengurus pengenalan unik baris apabila menambah automatik salah satu lajur.
Menggunakan AUTO_INCREMENT dalam MyISAM
Enjin storan MyISAM membolehkan anda untuk menentukan AUTO_INCREMENT pada lajur bukan utama dalam indeks berbilang lajur. Nilai kenaikan automatik dikira sebagai MAX(auto_increment_column) 1 yang mana awalan yang diberikan dipadankan. Ini amat berguna apabila menyusun data ke dalam kumpulan tersusun.
Contoh Penggunaan:
CREATE TABLE animals ( grp ENUM('fish','mammal','bird') NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id) ) ENGINE=MyISAM;
Dalam contoh ini, id dinaikkan secara automatik berdasarkan nilai grp .
Memohon pada Contoh Anda:
Untuk keperluan khusus anda, anda boleh mencipta struktur jadual berikut:
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 Data dan Keputusan:
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; +----------+-------------+--------------+ | table_id | database_id | other_column | +----------+-------------+--------------+ | 1 | 1 | Foo | | 2 | 1 | Bar | | 3 | 1 | Bam | | 1 | 2 | Baz | | 2 | 2 | Zam | | 1 | 3 | Zoo | +----------+-------------+--------------+
Seperti yang anda lihat, table_id ditambah secara automatik untuk setiap database_id unik. Ini memastikan kedua-dua keunikan setiap baris dan pengelompokan baris tersusun berdasarkan database_id.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Auto-Tambah Lajur dalam Kunci Utama Berbilang Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!