12

Oracle 10g で、大文字と小文字を区別しない一意の制約を 2 つの varchar フィールドに追加するにはどうすればよいですか? たとえば、次のレコードがすでにテーブルにあるとします。

"Stephen", "Swensen"
"John", "Smith"

次の挿入は無効です。

"stephen", "Swensen"
"John", "smith"
"stephen", "swensen"

ただし、次の挿入は有効です。

"Stephen", "Smith"
"John", "Swensen"
4

2 に答える 2

11

私は次のようにしてそれを機能させることができました:

CREATE UNIQUE INDEX person_name_upper ON person(
    UPPER(first_name), UPPER(last_name));
于 2013-04-04T02:35:13.647 に答える
5

テーブルの名前がpersonで、名と姓の列がfirst_namelast_nameであると仮定すると、次の一意の制約を追加します。

ALTER TABLE person ADD CONSTRAINT person_name_unique
    UNIQUE(LOWER(first_name),LOWER(last_name));

あなたの質問を正しく理解し、テーブルのレイアウトについて正しい仮定をしたかどうか教えてください.

于 2010-10-15T18:09:27.690 に答える