• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つの項目で重複値を入力させない)

項目の重複値を回避する方法とは?

このQ&Aのポイント
  • 2つの項目で重複値を入力させない方法について
  • 地点間の距離を保存するテーブルで逆区間の登録を制約する方法
  • 登録時に自前でチェックする方法の他にはないか

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.1

ファンクション索引を使ってみるとか? http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19248-02/adfns_indexing.htm#494614 例えばこんな感じで。 CREATE UNIQUE INDEX UK_DISTANCE ON DISTANCE_TBL (CASE WHEN S_POS < E_POS THEN S_POS || E_POS ELSE E_POS || S_POS END)

yasulu
質問者

お礼

「CONSTRAINT CK_DISTANCE CHECK (S_POS < E_POS)」 としてS_POS<E_POSとなるようにINSERT文をちゃんと書くことで対応することにしました。 ありがとうございました。

yasulu
質問者

補足

ご提示の内容試してみました。 indexですと重複内容を弾けないので、以下のようにしてみました。 ALTER TABLE DISTANCE_TBL ADD CONSTRAINT UK_DISTANCE UNIQUE (CASE WHEN S_POS<E_POS THEN S_POS||E_POS ELSE E_POS||S_POS END) / そうしたところ、無効な識別子ですとエラーとなってしまいました。

関連するQ&A

専門家に質問してみよう