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