在 Oracle 10g 中,如何在两个 varchar 字段上添加唯一的不区分大小写的约束?例如,给定表中已有以下记录:
"Stephen", "Swensen"
"John", "Smith"
以下插入无效:
"stephen", "Swensen"
"John", "smith"
"stephen", "swensen"
但以下插入将是有效的:
"Stephen", "Smith"
"John", "Swensen"
在 Oracle 10g 中,如何在两个 varchar 字段上添加唯一的不区分大小写的约束?例如,给定表中已有以下记录:
"Stephen", "Swensen"
"John", "Smith"
以下插入无效:
"stephen", "Swensen"
"John", "smith"
"stephen", "swensen"
但以下插入将是有效的:
"Stephen", "Smith"
"John", "Swensen"
我设法通过以下方式使其工作:
CREATE UNIQUE INDEX person_name_upper ON person(
UPPER(first_name), UPPER(last_name));
假设您的表称为person,并且名字和姓氏列称为first_name和last_name,请添加此唯一约束:
ALTER TABLE person ADD CONSTRAINT person_name_unique
UNIQUE(LOWER(first_name),LOWER(last_name));
让我知道我是否正确理解了您的问题并对您的表格布局做出了正确的假设。