ホームページ > データベース > mysql チュートリアル > MySQL のトリガーを使用して無効なデータの挿入または更新を防ぐ方法

MySQL のトリガーを使用して無効なデータの挿入または更新を防ぐ方法

Susan Sarandon
リリース: 2024-11-21 21:42:12
オリジナル
224 人が閲覧しました

How to Prevent Inserts or Updates with Invalid Data Using Triggers in MySQL?

MySQL でのトリガーによる挿入または更新の防止

チェック制約を処理する場合、MySQL はそれらを無視する場合があります。このため、このような場合にトリガーを効果的に使用して挿入と更新を制御する方法が問題になります。たとえば、「foo」という名前のテーブルには、1 ~ 5 の値のみを受け入れることができる「agency」属性があります。

最初は、この範囲外の値がテーブルに挿入されないようにトリガーが作成されました。

create trigger agency_check
before insert on foo
for each row
begin
    if (new.agency < 1 or new.agency > 5) then
        #Do nothing?
    end if;
end
ログイン後にコピー

ただし、トリガーは、無効なエージェンシー値を持つ行の挿入または更新を明示的に停止しません。このような動作を実装するには、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 = 'your error message';
    end if
end
ログイン後にコピー

この変更されたトリガーは、指定されたメッセージでエラーをスローするようになり、エージェンシーの値が事前定義された範囲外にある場合に挿入または更新が失敗するようになります。このアプローチは、MySQL でチェック制約を強制するためのより堅牢な方法を提供します。

以上がMySQL のトリガーを使用して無効なデータの挿入または更新を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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