2011-08-02 25 views

答えて

2

これは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以降で動作します。

関連する問題