浏览 3340 次
精华帖 (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在建表的时候不指出这样的错误 , 而非要到实际使用的时候才报错 ?
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-06
default rule是一种规则强制 它不受列数据完整性影响
你命令它默认是这个 那sybase只能听你的了 帮你绑上去而已 如果以后出错了再报给你 |
|
返回顶楼 | |