论坛首页 综合技术论坛

sybase上关于default值的一个怪问题

浏览 3337 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-05  

     今天碰到一个bug,是这样的:

     当我通过web界面向test表插入一条记录时候,sybase报如下错误:

     Insert Object Error: Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed

     test表结构是这样的 :

     create  table  test (

         id int not null,

         name varchar(10) null,

         team  varchar(10) default 20 null

    ) 

   这个语句是可以成功执行的.

   后来查找到原因如下:

   插入记录时,我没有设置 team的值,就好像执行如下的语句一样:

   insert into test ( id , name ) values ( 1, 'test' )

   因为 没有设置 team 字段的值,所以 sybase就用 20 来作为缺省值来设置 team 的值,但因为 team为varchar型的,所以就报上面那个错误了 , 后来把default 值设为 '20'  就可以了.

    我不明白的是,为什么sybase在建表的时候不指出这样的错误 ,  而非要到实际使用的时候才报错 ?

 

   发表时间:2007-06-06  
default rule是一种规则强制 它不受列数据完整性影响
你命令它默认是这个
那sybase只能听你的了 帮你绑上去而已
如果以后出错了再报给你


0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics