六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 99|回复: 0

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

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-14 00:45:44 | 显示全部楼层 |阅读模式
     今天碰到一个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在建表的时候不指出这样的错误 ,  而非要到实际使用的时候才报错 ?
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表