創建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);會使字段約束爲可空,不管原來是非空還是可空。