创建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);会使字段约束为可空,不管原来是非空还是可空。