【相談】ユニーク制約を貼っているテーブルにデータをInsertする前に、ユニーク制約のチェックをするか悩んでいます。
ユニーク制約を貼っているテーブルにデータをInsertする前に、ユニーク制約のチェックをするか悩んでいます。
TypeORMというORMを使っているのですが、チェックをしなくてもInsert後に発生したExceptionを確認してユニーク制約でエラーが起こったことはわかります。なので、チェック処理はコストがもったいないので不要かと思うのですが、その場合、TypeORMがエラーログを出力するので、それは意図通りなのでエラーログを残したくないなと思っています。
皆さんは、どうされていますか??
パターン1:Exceptinで確認(TypeORMがエラーログを出力してしまう)
try { model.insert(entry); } catch (e) { if (e.code == "ER_DUP_ENTRY") { return res.status(409).end(); } return res.status(500).end(); }
パターン2:事前チェック(すり抜けて500レスポンスになる可能性あり)
try { if (model.exsits(...) ) { return res.status(409).end(); } model.insert(entry); } catch (e) { // if (e.code == "ER_DUP_ENTRY") { 消し忘れ(2020/08/25に気づいたのでコメント化) return res.status(500).end(); }
パターン3:両方
try { if (model.exsits(...) ) { return res.status(409).end(); } model.insert(entry); } catch (e) { if (e.code == "ER_DUP_ENTRY") { return res.status(409).end(); } return res.status(500).end(); }
回答1件
あなたの回答
tips
プレビュー