Oracle字段的默认值无效的原因 | 郑州计算机学校_郑州电脑学校_郑州电脑培训

14

05-2014

  几天前有人问我设置了字段的默认值为什么无效呢?查找了一些资料,做了一个总结:  createtableTEST  (  IDVARCHAR2(64),  AVARCHAR2(3)default’0′,  NAMEVARCHAR2(100)  );  SQL>insertintotest(a,name)values(null,’test’);  1rowinserted  SQL>select*fromtest;  ANAME  ——————————————————————————-  test  在上面的例子中,虽然A列设置了默认值为0,但插入空仍然无效。  其实对于默认值,Oracle支持两种方式:Default关键字不指定列  先看第一种方式,  SQL>insertintotest(a,name)values(default,’test’);  1rowinserted  SQL>select*fromtest;  ANAME  ——————————————————————————-  0test  列A终于有了默认值0。  再看第二种方式,  SQL>insertintotest2(name)values(‘test’);  1rowinserted  SQL>select*fromtest2;  ANAME  ——————————————————————————-  0test  列A也被添加的默认值。  综上所述,Oracle的默认值处理要当心,如果应用中使用的是ORM工具,则必须要考虑对于字段为Null的处理,必要时在ORM工具中将Null转换为default或插入时去掉值为Null的字段。

该日志 2014年05月14日发表在网络安全技术分类下, 通告目前不可用,你可以至底部留下评论。
转载请注明: Oracle字段的默认值无效的原因 | 郑州计算机学校_郑州电脑学校_郑州电脑培训