2016-07-21 10 views
0

私はemailという名前の列を持っています。新しいユーザーを登録するときは、INSERTの前に提供された電子メールのテーブルにSELECTを実行しますユーザー。MySQLのネイティブエラー処理とユニークな値の予想されるエラー処理

私は電子メールレコードが既に存在する場合、エラーをスローするために列のUNIQUEインデックスに依存するチュートリアルを読みました。彼はMongoDBを使いました。私はMySQLを使っています。

一方で、挿入あたりのクエリをスペアするのは理にかなっていますが、DBエラーのあるものでは適切に感じられません。

答えて

2

DBエラーのある人は、正しく感じられません。

なぜですか?代わりに、アプリケーションは存在を最初に確認するオーバーヘッドをとり、レコードを挿入します。 email列にUNIQUE CONSTRAINTを追加してください。複製が重複して挿入に失敗した場合は、アプリケーションでそのエラーをキャッチし、emailというユーザーに確認メッセージを表示してください。

+0

メールが一意であると思われる場合は、UNIQUE制約を設定して検証に使用することをお勧めします。それは最も堅牢な方法です。間違ってユニークでない電子メールをデータベースに入れることはできません。 – jussius

関連する問題