您的位置:首页 > 数据库 > Oracle

informix和oracle中对于NULL约束设置的比较

2009-03-05 22:02 344 查看
创建xxx表,两个字段yyy,zzz, 都是可空。

create table xxx (yyy integer, zzz decimal(10));

1.语法

改字段为非空的语法相同,都是: alter table xxx modify (yyy integer not null);

改字段为可空的语法不同:

oracle为:alter table xxx modify (yyy integer null);

informix:alter table xxx modify (yyy integer);

如果带上null则报错-201,语法错误。

2.更改语句重复执行的表现

informix:上面两种情况的语句都可以重复执行,即原来可空的还可以指定为可空,原来非空的也可以继续指定为非空。

oracle:不能重复执行,重复执行报错. 原来为空的话指定为空的话报ora-1451错误,原来非空的指定为非空的话,报ora-1442错误。

3.不带null时的不同表现

oracle: 如果执行alter table xxx modify (yyy integer);那么yyy字段的可空还是非空约束不发生变化,原来是什么还是什么。

informix:如第1点和第2所述,alter table xxx modify (yyy integer);会使字段约束为可空,不管原来是非空还是可空。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: