SQL语句约束问题求教。。

新建一表,要使一字段中不出现I、i、O、o、Q、q,以下写法有什么问题吗。。。
X char(17) check (X not like'%I%i%O%o%Q%q');
如果有的话还请指正,不胜感激。

4个回答

楼上的逻辑有问题,首先分开是对的,但应该是用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看是否存在那些字符,效率更高。
不过,这样进行约束是很不适当的。
应该在存数据之前判断,有就不存入。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问