2012-04-05 10 views
0

こんにちは、MVC3を使用しています。私のアプリケーション内で同じプライマリキーを停止する方法を知りたいです。私は私の主キーはNVARCHAR(100)のように設定して、それはあなたがより多くの情報が必要な場合はお問い合わせください、私は再び感謝同じプライマリキーを許可しないようにする方法

を同じ名前を入力することからユーザーを防ぐためにsimlar検証のREG xを必要とするコンソール名を許可することができます

+0

再度同じ名前を入力しようとするとクラッシュするので、確認の必要があります。 – user1137472

+0

どのデータベースシステムを使用していますか? –

+0

PKがすでに存在するかどうかを確認するために正規表現を使用してデータベースを照会する必要がありますか? –

答えて

2

私が最近回答したように、varchar()とnvarchar()カラムを主キーとして使用することをお勧めします。これらはジョインやQueryById()操作の方が処理が遅く、値を編集できるようにすることが推奨されます(これも推奨します)。主キーの編集は、列にクラスタード・インデックスがあるために悪いです。値を十分に変更すると、索引を斜めにして再構築する必要があります。

IDENTITY列(SQL Server)またはSEQUENCE(Oracle)を使用し、名前列にUNIQUE制約を設定することをお勧めします。ユニーク制約を使用すると、ユーザーが重複する名前を入力しようとすると、データベース・エンジンは例外をスローします。あなたのコードは例外をキャッチし、適切なエラーメッセージをユーザに提示する必要があります。

+0

私はそれらを編集したくない、それはあなたがhavnt質問を読んでいるようだ、私はすべて同じIDを再度入力からstooユーザーです – user1137472

+0

多分あなたは私の答えのすべてを読んでいない... – mgnoonan

+0

@ user1137472あなたが答えが必要な場合、あなたはあなたの質問を明確にする必要があります、私はそれが閉じられるために投票しています –

0

私はそれのための正規表現が必要とは思わない。新しいレコードをデータベースに追加する前に、selectを実行し、それがすでに存在するかどうかを確認してください。

また、mgnoonanの状態と同様に、varcharsを主キーとして使用することは、一般的には有効ではありません。私がそれを見つけたたびに、それは結局問題を引き起こしました。

関連する問題