Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Auto-Tambah Lajur dalam Kunci Utama Berbilang Lajur?

Bagaimanakah Saya Boleh Auto-Tambah Lajur dalam Kunci Utama Berbilang Lajur?

Barbara Streisand
Lepaskan: 2024-12-13 08:11:10
asal
724 orang telah melayarinya

How Can I Auto-Increment a Column in a Multi-Column Primary Key?

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;
Salin selepas log masuk

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;
Salin selepas log masuk

Contoh Data dan Keputusan:

INSERT INTO mytable (database_id, other_column) VALUES
    (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo');
Salin selepas log masuk
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          |
+----------+-------------+--------------+
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan