MySQL: 外部フィールドに依存するシーケンス列の確立
データベース管理の領域では、既存のフィールドを変更することが必要になる場合があります。新しいデータ要件に対応するための構造。特定の外部キーに基づいてレコードにシーケンス番号を割り当てる必要がある場合がこれにあたります。
列 ID、ACCOUNT、および some_other_stuff を持つテーブルを考えてみましょう。目標は、次のように、個別の 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 ベースのソリューション:
MySQLトリガーは、データ操作イベント時に事前定義されたアクションを自動的に実行する強力なメカニズムです。この場合、トリガーを使用して、レコードの挿入中に SEQ 列に適切な値を設定できます。トリガー コード:
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;
内訳:
以上がMySQL で外部キーに依存するシーケンス列を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。