首頁 > 資料庫 > mysql教程 > MySQL如何實作多列自增主鍵?

MySQL如何實作多列自增主鍵?

Mary-Kate Olsen
發布: 2024-12-11 10:43:10
原創
640 人瀏覽過

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

使用多列自動遞增主鍵和輔助列自動遞增

在具有共享結構的資料庫中維護資料完整性可以是至關重要的。作為策略的一部分,您正在考慮使用兩個欄位作為聯合主鍵,一列是資料庫標識符,另一列是表鍵。但是,您希望將表鍵設定為根據資料庫識別碼自動遞增。

對於 MySQL,您可以根據所使用的儲存引擎進行選擇。如果您使用 MyISAM,則可以利用其在多列索引中的輔助列上指定 AUTO_INCREMENT 的功能。

要了解其工作原理,請考慮以下範例:

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;
登入後複製

在此表中,grp 和 id 列構成複合主鍵。 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');
登入後複製

查詢table:

SELECT * FROM mytable ORDER BY database_id,table_id;
登入後複製

這將傳回按database_id分組的結果,每個群組的table_id值自動遞增。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板