Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Auto-Increment pada Lajur Kunci Utama Menengah dalam MySQL?

Bagaimana untuk Melaksanakan Auto-Increment pada Lajur Kunci Utama Menengah dalam MySQL?

DDD
DDDasal
2024-12-13 16:16:11764semak imbas

How to Implement Auto-Increment on a Secondary Primary Key Column in MySQL?

Mencapai Auto-Tambahan pada Lajur Kunci Utama Sekunder 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:

Menggunakan Enjin MyISAM dengan AUTO_INCREMENT

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.

Sebagai Contoh :

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!

Kenyataan:
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