ホームページ > データベース > mysql チュートリアル > MySQL で外部キーに基づいてシーケンス列を生成するにはどうすればよいですか?

MySQL で外部キーに基づいてシーケンス列を生成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-28 11:47:11
オリジナル
741 人が閲覧しました

How to Generate a Sequence Column Based on a Foreign Key in MySQL?

MySQL: 外部キーに基づいたシーケンス カラムの生成

レガシー データベースで、各外部キーの数値順序を記録するシーケンス カラムを追加するキーを使用すると、データの検索と整理が強化されます。次のテーブルがあるとします。

ID ACCOUNT some_other_stuff
1 1 ...
2 1 ...
3 1 ...
4 2 ...
5 2 ...
6 1 ...

目的は、ACCOUNT ごとに個別に増加する SEQ 列を作成することです。これにより、次のテーブルが作成されます。

ID ACCOUNT SEQ some_other_stuff
1 1 1 ...
2 1 2 ...
3 1 3 ...
4 2 1 ...
5 2 2 ...
6 1 4 ...

これを実現するには、SQL トリガーを利用できます。

CREATE TRIGGER trg_mytable_bi
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
      DECLARE nseq INT;
      SELECT  COALESCE(MAX(seq), 0) + 1
      INTO    nseq
      FROM    mytable
      WHERE   account = NEW.account;
      SET NEW.seq = nseq;
END;
ログイン後にコピー

このトリガーにより、mytable テーブルに挿入されたすべての新しい行が確実に取得されます。関連する ACCOUNT に基づく一意のシーケンス番号。

以上がMySQL で外部キーに基づいてシーケンス列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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