ID に基づいてフィールドを更新する MySQL トリガー
フィールドの値を ID に自動的に設定するためにトリガーを利用できるかどうかの決定さまざまな側面を検討する必要があります。
トリガー定義
条件に基づいて挿入前にフィールドを更新するトリガーの MySQL 構文は次のとおりです。
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;
トリガーの制限
ただし、このアプローチには制限があります。 BEFORE INSERT フェーズでは、ID 値はまだ利用できないため、group_id が NULL の場合、デフォルトの 0 になります。
AFTER INSERT フェーズでは列内の値の変更が許可されていないため、このフェーズの対象外となります。
代替ソリューション
MySQL の制限により、純粋なトリガー ソリューションは実現できません。代わりに、挿入と即時更新の両方を含む組み合わせアプローチを使用できます。
このアプローチにより、group_id フィールドが指定された場合と省略された場合の両方のシナリオで正しく設定されることが保証されます。
以上がMySQL トリガーはフィールドの値をその ID に自動的に設定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。