当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle 自增(auto increment) 或 标识字段的建立方法

Oracle
数据库Oracle性能优化可能出现的问题
oracle认证辅导:重访Oracle密码
Oracle认证:修改用户指定的默认表空间
Oracle认证:Oracle的三种Join方法
Oracle认证辅导:教你数据库查询初始化参数
教你查询Oracle中的表空间
利用变量在Linux中给文件命名
oracle的case函数控制结构DECODE()函数
解决Oracle被锁定有妙招
Oracle数据库编写事务 几个需要遵守指导方针
如何解决Oracle被锁定问题
如何控制Oracle虚拟专用数据
Oracle入门基础之参数文件
如何解决Oracle数据库ORA-00257故障
实例解析:用Oracle创建实例的参数需求
对比Caché和Oracle在数据库的应用
风河应用Oracle产品为企业2.0提供动力
Oracle数据库中Insert、Update、Delete操作速度大提速
Oracle11g再创TPC-C基准测试性价比世界纪录
Oracle用户常用数据字典的查询

Oracle 自增(auto increment) 或 标识字段的建立方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 78 ::
收藏到网摘: n/a

SQL SERVER 和 ACCESS 以及 MYSQL 中, 都有一种 自增字段, 通常被用来做 主键 或 索引键, 但是 ORACLE 中,确并没有提供这种字段类型(实际并不是一种字段类型) ,但我们确经常需要这个功能。 下面给出ORACLE的一种实现方式,要分2步走:
1. 建立 SEQUENCE CREATE [ OR REPLACE ] SEQUENCE sequence_identity START WITH initial seed INCREMENT BY step MAXVALUE upper bound [NOMAXVALUE] NOCYCLE [empty]
2. 建立 TRIGGER CREATE [ OR REPLACE ] TRIGGER trigger_identity BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT sequence_identity.NEXTVAL INTO :new.column_name FROM DUAL; END;
说明:
为了尽量避免 sequence 同名冲突, sequence_identity 命名方式,建议采取
SEQ_UserName_TableName_SequenceName 的形式
trigger_identity 的命名方式,同上。