【CONSTRAINT】具有唯一性约束的列是否可以插入空值测试_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 7134 | 回复: 0   主题: 【CONSTRAINT】具有唯一性约束的列是否可以插入空值测试        上一篇   下一篇 
yd7563337
注册用户
等级:少将
经验:10191
发帖:128
精华:1
注册:2011-8-9
状态:离线
发送短消息息给yd7563337 加好友    发送短消息息给yd7563337 发消息
发表于: IP:您无权察看 2015-6-25 10:44:43 | [全部帖] [楼主帖] 楼主

1.创建具有唯一约束的表T

sec@ora10g> create table t (x varchar2(8),constraint uniq_t unique(x));
Table created.


T表仅包含一列X,在X列上创建了唯一约束。

2.测试唯一约束的有效性

sec@ora10g> insert into t values ('secooler');
1 row created.
sec@ora10g> insert into t values ('secooler');
insert into t values ('secooler')
*
ERROR at line 1:
ORA-00001: unique constraint (SEC.UNIQ_T) violated


可见,当插入重复值“secooler”时提示违反了唯一约束条件。

3.验证是否可以插入空值
尝试两种插入方法。
1)使用“null”插入

sec@ora10g> insert into t values (null);
1 row created.


2)使用“''”插入

sec@ora10g> insert into t values ('');
1 row created.
sec@ora10g> commit;
Commit complete.


结论已经非常明显:具有唯一性约束的列是可以插入空值的!

4.验证插入后的内容
为了方便查看插入的空值,这里使用两种比较巧妙的方法进行体现。

sec@ora10g> select '>>' x '<<' from t;
'>>' X '<<
------------
>>secooler<<
>><<
>><<
sec@ora10g> select nvl(x,'I am NULL value!') from t;
NVL(X,'IAMNULLVA
----------------
secooler
I am NULL value!
I am NULL value!


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论