MySQL如何實作分組自增?

Barbara Streisand
發布: 2024-10-27 20:41:30
原創
483 人瀏覽過

How to Implement Auto-Increment by Group in MySQL?

MySQL 中按群組自動遞增

MySQL 提供了一種基於分組列自動遞增欄位值的便利方法。這在需要對每組內的記錄進行分組和編號的場景中特別有用。

對於 MyISAM 和 BDB 表

對於 MyISAM 和 BDB 表,自動遞增可以定義為次要關鍵部分。例如,考慮以下表格結構:

CREATE TABLE foo (
   id          INT AUTO_INCREMENT NOT NULL,
   group_field INT NOT NULL,
   name        VARCHAR(128),

   PRIMARY KEY(group_field, id)
);
登入後複製

在此結構中,id 欄位定義為自增,但它與 group_field 一起也是主鍵的一部分。根據MySQL 文件:

In this case, the generated value for
   the AUTO_INCREMENT column is
   calculated as
   MAX(auto_increment_column) + 1 WHERE
   prefix=given-prefix. This is useful
   when you want to put data into ordered
   groups.
登入後複製

範例

使用上面建立的foo 表,讓我們插入一些範例資料:

INSERT INTO foo (group_field, name) VALUES (1, 'test'), (1, 'test2'), (2, 'test3'), (2, 'test4'), (3, 'test5'), (3, 'test6');
登入後複製

插入資料後,foo 表的內容將如下所示:

+----+-----------+------+
| id | group_field | name |
+----+-----------+------+
| 1  |          1 | test |
| 2  |          1 | test2 |
| 3  |          2 | test3 |
| 4  |          2 | test4 |
| 5  |          3 | test5 |
| 6  |          3 | test6 |
+----+-----------+------+
登入後複製

如您所見,每個群組中的id 欄位已根據group_field 值自動遞增。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!