ホームページ > データベース > mysql チュートリアル > トリガーを使用して MySQL テーブルでの無効なデータ エントリを防ぐにはどうすればよいですか?

トリガーを使用して MySQL テーブルでの無効なデータ エントリを防ぐにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-18 07:00:02
オリジナル
467 人が閲覧しました

How can I Prevent Invalid Data Entries in MySQL Tables Using Triggers?

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

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