表中有一个字段 email , 约束位 unique表中 有一条记录 [email protected]现在 要插入 另一个 email: [email protected]结果报错,提示 违反 约束, 因为 在oracl 插入 [email protected] 会以类似下面的sql去查询是否已经有相同的email
select * from table where email like '[email protected]' ,在这条sql 中 _ 是个通配符,匹配任意一个字符,所以 会找到 [email protected], 产生了冲突这个问题要怎么解决?
select * from table where email like '[email protected]' ,在这条sql 中 _ 是个通配符,匹配任意一个字符,所以 会找到 [email protected], 产生了冲突这个问题要怎么解决?
解决方案 »
- C# 读取XML每个节点的值
- (菜鸟求助)错误查找
- 如何用正则表达式如何获得的下面的指定网页的源码
- .Net(C#) 导入注册表,出现的问题~
- c# 将button变为不规则后,程序调试时为何慢了
- 求一个字符编码转换问题
- C#中,如何将byte[]中的内容转换成string ?
- 如何运用特性把类名与表名映射起来!!
- 这个错误怎么改? socket:通常每个套接字地址(协议/网络地址/端口)只允许使用一次
- winfrom 登录 向后台Login.ashx POST数据的时候 遇到的编码问题
- DropDownList也会有如此怪问题!!!!!各位侠进来看看。
- insert '+@bm+'(name) value(@lm)请教各位错在那?
----------
1
SQL> select 1 from dual where '[email protected]' like replace('[email protected]','_','\_') escape '\';未选定行SQL>
CREATE TABLE test5
(
USER_NAME VARCHAR2(60) NOT NULL
)CREATE UNIQUE INDEX test5_idx ON test5(USER_NAME)insert into test5 values('a.b')
insert into test5 values('a_b')
insert into test5 values('aa.bb.com')
insert into test5 values('aa_bb.com')
通配字符如果一定要用,可用ASCII码代替。
我在9I中试过了
insert into table (email) values ('[email protected]');
可以通过
除了在WHERE后面的'_'代表通配符,其它地方可以当正常的字符使用