ホームページ > データベース > mysql チュートリアル > MySQL トリガーは INSERT 操作の失敗を防ぐことができますか?

MySQL トリガーは INSERT 操作の失敗を防ぐことができますか?

Mary-Kate Olsen
リリース: 2024-11-14 09:56:02
オリジナル
533 人が閲覧しました

Can MySQL Triggers Prevent INSERT Operations from Failing?

トリガーによる INSERT の失敗の原因

MySQL のトリガーは挿入または更新の前にデータを変更できますが、当初は変更できると考えられていました。操作の失敗を防ぐことはできません。しかし、さらなる調査により、この機能を実現する方法があることが判明しました。

MySQL の回避策

MySQL バージョン 5.0 および 5.1 では、回避策を使用して、をトリガーし、エラー メッセージを表示します。これには、存在しない列へのアクセス試行が含まれます:

CREATE TRIGGER mytabletriggerexample
BEFORE INSERT
FOR EACH ROW
BEGIN
IF(NEW.important_value) < (fancy * dancy * calculation) THEN
    DECLARE dummy INT;

    SELECT Your meaningful error message goes here INTO dummy 
        FROM mytable
      WHERE mytable.id=new.id
END IF; END;
ログイン後にコピー

条件が満たされると、トリガーは存在しないテーブルからエラー メッセージを選択しようとし、指定されたメッセージで挿入が失敗します。 .

その他の RDBMS

トリガー内で例外をスローして操作を中止する機能は、すべての RDBMS で普遍的にサポートされているわけではありません。ただし、一部のデータベースは、トリガー内の検証エラーを処理するための代替メカニズムを提供します。例:

  • PostgreSQL: RAISE EXCEPTION コマンドを使用すると、例外を発生させ、エラー メッセージを表示できます。
  • Oracle: SIGNAL ステートメントを使用すると、トリガー内で警告またはエラーを発生させることができます。

以上がMySQL トリガーは INSERT 操作の失敗を防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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