bdv32mfe 发表于 2013-1-30 00:25:06

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

     今天碰到一个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在建表的时候不指出这样的错误 ,  而非要到实际使用的时候才报错 ?
 
页: [1]
查看完整版本: sybase上关于default值的一个怪问题