我有一个db表,其中一列是String。我不认为这个案例很重要(例如“TEST ==”test“)。不幸的是,看起来JPA2确实如此,因为两个值都插入到我的表中;我希望第二个被拒绝。
是否有一种通用的方法来对字符串列上的“ignore-case”唯一约束进行注释?
作为替代方案,我还可以考虑在实际的db列上放置一个唯一的“ignore-case”约束。这在Oracle 10中是否可行?
我不想做的是编写代码,因为这通常发生在这个特定的数组中。
非常感谢所有帮助。
答案 0 :(得分:1)
您可以使用基于函数的唯一索引
来实现此目的create unique index <index_name> on <table_name> (UPPER(<column_name>));
例如
create table t111( col varchar2(10));
create unique index test_idx on t111 (UPPER(col));
insert into t111 values('test');
insert into t111 values ('TEST');