informix和oracle中对于NULL约束设置的比较
2009-03-05 22:02
344 查看
创建xxx表,两个字段yyy,zzz, 都是可空。
create table xxx (yyy integer, zzz decimal(10));
改字段为可空的语法不同:
oracle为:alter table xxx modify (yyy integer null);
informix:alter table xxx modify (yyy integer);
如果带上null则报错-201,语法错误。
oracle:不能重复执行,重复执行报错. 原来为空的话指定为空的话报ora-1451错误,原来非空的指定为非空的话,报ora-1442错误。
informix:如第1点和第2所述,alter table xxx modify (yyy integer);会使字段约束为可空,不管原来是非空还是可空。
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);会使字段约束为可空,不管原来是非空还是可空。
相关文章推荐
- oracle在线重定义拷贝表结构的NOT NULL约束问题
- MSSQL ORACLE MYSQL 对于查出值为NULL的替换
- Oracle之SQL基础--设置表约束
- 转:ORACLE存储过程笔记1----基本语法(以及与informix的比较)
- [转自Oracle官方技术博客]对于一个非空字段定义的表导出后,再imp时候报错ORA-01400: cannot insert NULL into xxx 为何呢?
- 对于Oracle中分页排序查询语句执行效率的比较分析
- Oracle中集中对于NULL操作的函数NVL,NVL2,以及COALESCE的用法
- 数据库(学习整理)----3--Oracle创建表和设置约束
- DB2与Sybase/Oracle/Informix的比较
- ORACLE中两个有可能都为NULL的字符串是否相等的比较
- 对于Oracle中分页排序查询语句执行效率的比较分析
- Oracle外键约束之在创建表时设置外键约束
- DB2与Sybase/Oracle/Informix的比较
- 为已存在的字段(Null)添加约束,设置默认值为0
- hibernate在Oracle中插入数据,默认字段被设置为null的问题解决
- Oracle Arraysize设置对于逻辑读的影响实例分析
- Oracle 数据库唯一约束中的NULL的处理
- Oracle两个易错的地方,关于null和''的逻辑比较
- linux 设置时间(hadoop 对于时间要求比较高,所有在集群时特别要注意时间)
- DB2与Sybase/Oracle/Informix的比较