MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLはトリガー実行中のエラーをどのように処理できますか?


トリガーの実行中にエラーが発生した場合、MySQLはそれを次のように処理できると仮定します-

  • BEFOREトリガーが失敗した場合、対応する行の操作は実行されません。
  • BEFOREトリガーは、試行がその後成功するかどうかに関係なく、行の挿入または変更の試行によってアクティブ化されます。
  • AFTERトリガーは、BEFOREトリガーと行操作が正常に実行された場合にのみ実行されます。
  • BEFOREまたはAFTERトリガー中にエラーが発生すると、ステートメント全体が失敗し、トリガーが呼び出されます。
  • トランザクションテーブルの場合、ステートメントに障害が発生すると、ステートメントによって実行されたすべての変更がロールバックされます。トリガーが失敗するとステートメントが失敗するため、トリガーが失敗するとロールバックも発生します。非トランザクションテーブルの場合、このようなロールバックは実行できないため、ステートメントは失敗しますが、エラーが発生する前に実行された変更は引き続き有効です。

  1. MySQLでprintステートメントをシミュレートするにはどうすればよいですか?

    MySQLでprintステートメントをシミュレートするには、selectステートメントを使用できます。構文は次のとおりです- SELECT ‘anyStringValue’ as ’ ‘; 上記の構文は、MySQLコマンドラインクライアントで確認できます。 ケース1 文字列を印刷するには。 mysql> select 'HELLO MYSQL' as ' '; 出力 +-------------+ |             | +--------

  2. MySQLで日数を数えるにはどうすればよいですか?

    まず、1つの列を日時として、別の列に日が格納されているテーブルを作成しましょう。 mysql> create table DemoTable (    ShippingDate datetime,    CountOfDate int ); Query OK, 0 rows affected (0.52 sec) 以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。 mysql> insert into DemoTable values('2018-01-31',6); Query OK,