ホームページ > データベース > mysql チュートリアル > MySQL トリガーを使用して ID 値で列を自動的に更新するにはどうすればよいですか?

MySQL トリガーを使用して ID 値で列を自動的に更新するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-07 19:36:02
オリジナル
265 人が閲覧しました

How to Automatically Update a Column with the ID Value Using a MySQL Trigger?

MySQL トリガーを使用して ID 値で列を更新する

MySQL トリガーを使用すると、特定のイベントが発生したときに特定のアクションを自動的に実行できます。データベーステーブル。この場合、列が null の場合に、列の値を新しく挿入されたレコードの ID の値に更新するトリガーを作成したいと考えています。

このようなトリガーを作成する SQL ステートメントは次のようになります。

CREATE TRIGGER [trigger_name] BEFORE INSERT ON [table_name]
FOR EACH ROW BEGIN
  IF NEW.group_id IS NULL THEN
    SET NEW.group_id = NEW.id;
  END IF;
END
ログイン後にコピー

このトリガーは、指定されたテーブルに対する INSERT 操作の前に起動されます。新しいレコードの group_id 列が null かどうかを確認します。その場合、group_id を、自動生成された主キーである id 列の値に設定します。

次のテーブルを考えてみましょう。

CREATE TABLE table_name (
  id INT NOT NULL AUTO_INCREMENT,
  group_id INT NULL,
  value VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
);
ログイン後にコピー

指定された group_id を持つレコードを挿入する場合:

INSERT INTO table_name(value, group_id) VALUES ('a', 10);
ログイン後にコピー

トリガーは実行されず、データは期待どおりに挿入されます:

id | group_id | value
---+----------+------
 1 |       10 | a
ログイン後にコピー

ただしgroup_id:

INSERT INTO table_name(value) VALUES ('b');
ログイン後にコピー

を指​​定せずにレコードを挿入すると、トリガーが起動し、新しく挿入されたレコードの ID:

id | group_id | value
---+----------+------
 2 |        2 | b
ログイン後にコピー

注: に group_id が設定されます。既存の値の上書きを避けるために、トリガーが group_id 列を null の場合にのみ更新するようにすることが重要です。

以上がMySQL トリガーを使用して ID 値で列を自動的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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