ホームページ > データベース > mysql チュートリアル > MySQL でグループごとの自動インクリメントを実装するにはどうすればよいですか?

MySQL でグループごとの自動インクリメントを実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-27 20:41:30
オリジナル
576 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート