- ベストアンサー
同名の登録を防ぐ
たびたびの質問で恐縮です。現在、入力フォームで商品を登録した際に 同名の商品がDBに登録されて(りんごと入力したあと、りんごと入力するとまたリンゴが登録される)しまうので、これを防ぐスクリプトで悩んでいます。商品を登録するときに、商品名をすでに登録されている商品名と照合して、その商品名が存在しているならばエラー文、同じ商品名がなければそのまま登録というような流れでいきたいのです。 商品名(文字列)を照合する、というような。適当なSQL文はありますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
重複登録したくないフィールド(今回の場合は商品名?)をプライマリキーやユニークインデックスにして、 INSERT後エラーが発生したかどうかでOKではないですかね?
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
商品名などというあいまいなもので排他性を 回避することは危険です。 大文字・小文字・全角・半角・スペース有り無しなど 名前の入力なんて非常にいい加減です。 前回の回答にも書きましたがプライマリキーを設定し 商品IDを作成し、その排他性をもって2重登録を ふせぐのが肝要です。
質問者
お礼
そのほうがよさそうですね。一応解決することができました。
- tkun62
- ベストアンサー率23% (37/159)
回答No.1
select * from テーブル where 商品名 = @商品名 などでは駄目なのですか? 結果が得られたらエラーってことで。
質問者
お礼
ご回答ありがとうございました。
お礼
ありがとうございます。参考にさせていただきます。