首頁 >資料庫 >mysql教程 >多列主鍵如何自動增加一列?

多列主鍵如何自動增加一列?

Barbara Streisand
Barbara Streisand原創
2024-12-13 08:11:10717瀏覽

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

在多列主鍵上使用自動增量

維護跨資料庫的資料完整性可能具有挑戰性。透過利用兩列作為複合主鍵,可以確保每行的唯一性。但是,在自動遞增其中一列時,必須考慮如何管理行的唯一識別。

在 MyISAM 中使用 AUTO_INCRMENT

MyISAM 儲存引擎可讓您在多列索引中的非主列上指定 AUTO_INCRMENT。自動增量值計算為 MAX(auto_increment_column) 1,其中符合給定前綴。這在將資料組織成有序組時特別有用。

用法範例:

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;

在此範例中,id 根據 grp的值自動遞增.

適用於您範例:

根據您的特定要求,您可以建立以下表格結構:

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;

範例資料與結果:

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          |
+----------+-------------+--------------+

如您所見,table_id 會針對每個唯一的database_id 自動遞增。這確保了每行的唯一性以及基於database_id的有序分組。

以上是多列主鍵如何自動增加一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn