私は簡単な質問があります。私は、(col 1、col 2)が一意であることを保証するインデックスを持つ結合テーブルを持っています。Mysql2 :: Errorから救助
mysql2 gemを使用してそのテーブルに追加していますが、その結果、重複したキーエラーが発生した場合は、Mysql2 :: Errorをキャッチしようとしています。重複キーエラーが発生している間、私のレスキュー本体は実行されていません。
begin
self.foo << bar
rescue Mysql2::Error
logger.debug("#{$!}")
end
私はself.foo << bar
Mysql2 ::エラー実行時に以下のエラーが発生します:キー 'index_foos_bars_on_foo_id_and_bar_id' の重複エントリ '35455から6628を':foos_bars
(foo_id
、bar_id
)VALUES(35455、。INSERT INTO 6628)
私のレスキューステートメントはヒットしていません!例外は正常に救済されません。私は間違って何をしていますか? Mysql2 :: Errorを削除してすべてを救済すると、動作します。しかし、それは悪い習慣です - 私はちょうどMysql2から救助したい:: Errorは、重複したエントリのイベントです。
おかげで、
であることが判明し、この場合に思えるを確認しており、確かMysql2を作っ::エラーがスローされているもののために正確に正しい大文字小文字、すべてのですか? – jdc
私は例外を記録しており、それはタイプMysql2 :: Error – deruse