新建一表,要使一字段中不出现I、i、O、o、Q、q,以下写法有什么问题吗。。。
X char(17) check (X not like'%I%i%O%o%Q%q');
如果有的话还请指正,不胜感激。
楼上的逻辑有问题,首先分开是对的,但应该是用and。几个字符都不允许出现的。
(X not like '%I%') and (X not like '%i%') and (X not like '%O%') ...
(X not like '%I%') or
(X not like '%i%') or
……
每个字母要单独分开来写
你的这个一串'%I%i%O%o%Q%q'写成这样是有问题的吧
用INSTR看是否存在那些字符,效率更高。
不过,这样进行约束是很不适当的。
应该在存数据之前判断,有就不存入。