私は特にトリガとストアプロシージャのmysql例外をキャッチしようとしています。私たちはmysql側から例外をキャッチできますか?私はまだ解決策が見つかりませんでした。あなたの助けに感謝します。あなたはSPをデバッグしようとしている場合どのようにトリガで例外をキャッチし、mysqlのストアプロシージャ?
おかげ Hitesh
私は特にトリガとストアプロシージャのmysql例外をキャッチしようとしています。私たちはmysql側から例外をキャッチできますか?私はまだ解決策が見つかりませんでした。あなたの助けに感謝します。あなたはSPをデバッグしようとしている場合どのようにトリガで例外をキャッチし、mysqlのストアプロシージャ?
おかげ Hitesh
チェックアウト
http://dev.mysql.com/doc/refman/5.1/en/declare-handler.html
またDECLAREハンドラの構文、これはあなたのために役に立つかもしれません:
これはMySQLエラーの検索の先頭に表示されるのでトリガーで取り扱い、私は、私は、MySQL 5.5以降のために私の解決策を共有したいと思っ
私のオリジナルのポスト:https://stackoverflow.com/a/26115231/1733365は以下の重複...
私はエラーは、MySQLでの取り扱いを検索するときに、この記事がトップに向かってくるので
トリガー、私はいくつかの知識を共有すると思った。エラーがある場合、MySQLにはSIGNALを使用させることができますが、SQLEXCEPTIONとしてクラスとして指定しないと、すべてのSQLSTATEが不良とみなされるわけではなく、ネストされたBEGIN/ENDブロックがある場合は、RESIGNALにする必要があります。
さらに、トリガー内で、出口ハンドラを宣言して例外を再通知する方が簡単です。
CREATE TRIGGER `my_table_AINS` AFTER INSERT ON `my_table` FOR EACH ROW
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
RESIGNAL;
DECLARE EXIT HANDLER FOR SQLWARNING
RESIGNAL;
DECLARE EXIT HANDLER FOR NOT FOUND
RESIGNAL;
-- Do the work of the trigger.
END
あなたの体にエラーが発生した場合は、エラーが発生してトップに戻され、終了します。これは、ストアドプロシージャなどでも使用できます。
これはバージョン5.5以降で動作します。