MySQL でのトリガーによる挿入と更新の防止
他のデータベース システムとは異なり、MySQL はチェック制約をネイティブに強制しません。そのため、無効なデータがテーブルに入力されるのを防ぐための代替方法を検討する必要があります。トリガーは、この問題に対処するための堅牢なメカニズムを提供します。
指定された例では、テーブル foo の Agency 属性を値 1 ~ 5 に制限したいと考えています。単純なアプローチでは、挿入または更新を許可する前に new.agency の値をチェックするトリガーを作成する必要があります。ただし、挿入または更新を単に無視するだけでは不十分です。
より効果的な解決策には、SIGNAL 構文の使用が含まれます。エラー (例: SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'your error message') を発生させることで、操作の実行を防ぎ、意味のあるエラー メッセージをユーザーに提供できます。
これは更新された例です。 SIGNAL 構文を使用したトリガー:
create trigger agency_check before insert on foo for each row begin if (new.agency < 1 or new.agency > 5) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Agency value must be between 1 and 5'; end if end
このトリガーは、無効なエージェンシー値を使用して foo テーブルを挿入または更新しようとする試みを効果的に防止します。
以上がトリガーを使用して MySQL テーブルでの無効なデータ エントリを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。