`
CoderDream
  • 浏览: 477326 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Oracle中实现自增长列

阅读更多

在使用Oracle数据的过程中,经常会用到自增长列,但Oracle并没有提供直接实现自增长的方法,下面我们来看看如何自己实现此功能。

 

步骤一:创建序列

-- CREATE SEQUENCE 
CREATE SEQUENCE INNERID
MINVALUE 1
MAXVALUE 99999999999999
START WITH 1
INCREMENT BY 1
CACHE 20
ORDER;

 步骤二:创建表

CREATE TABLE ADMIN2
(ID VARCHAR2(20),NAME VARCHAR2(10));

 

步骤三:使用INNERID的属性插入值:

--INNERID.currval 指当前序列

--INNERID.nextval 指下一个序列

--不断的插入序列的下一个值.

INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'A');
INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'B');
INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'C');
INSERT INTO ADMIN2 VALUES (INNERID.NEXTVAL,'D');

 得到的结果:

 	ID	NAME	
	1	A	
	2	B	
	3	C	
	4	D

 虽然通过上面的方式我们可以实现自增长列,但是还可以通过触发器实现更简单的操作。

 

步骤四:在ADMIN2表上创建触发器

--ADMIN2 ID 的触发器
CREATE OR REPLACE TRIGGER ADMIN_TG
BEFORE INSERT ON ADMIN2 FOR EACH ROW
BEGIN
SELECT INNERID.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

 步骤五:通过简单的方式插入记录:

INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ2');
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ3');
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ4');
INSERT INTO ADMIN2 (NAME) VALUES ( 'ZDZ5');

 查询结果:

ID	NAME	
	5	ZDZ2	
	6	ZDZ3
	7	ZDZ4	
	8	ZDZ5

 

参考资料:http://tech.ccidnet.com/art/1107/20080528/1460789_1.html

分享到:
评论

相关推荐

    如何为oracle中的表增加自动增长列.pdf

    在Oracle数据库中,表的自动增长列通常是指使用序列(SEQUENCE)或者使用Oracle提供的自动增长数据类型(例如:IDENTITY或者GENERATED AS IDENTITY),以实现表中某列值能够随着记录的增加而自动递增。本文将介绍...

    oracle自动增长列

    在Oracle数据库中,实现自动增长列的功能主要依赖于`SEQUENCE`对象。通过创建一个序列(SEQUENCE),可以方便地为表中的某列自动生成唯一的值,这对于主键或者需要唯一标识符的场景非常有用。 #### 1. SEQUENCE概述...

    oracle设定自增长列

    在Oracle数据库中,实现自增长列的功能是一种常见的需求,尤其在设计主键或者唯一标识符时。这通常用于确保每条记录都有一个唯一的、连续的编号。在给定的文件中,通过创建表、序列和触发器的方式实现了这一功能。...

    oracle设置主键自动增长

    本文主要介绍如何在 Oracle 数据库中设置主键自动增长,并通过具体的示例来帮助理解整个流程。 #### 二、创建表与自增主键 ##### 1. 创建表 首先,我们需要创建一张表。这里以 `example` 表为例,该表包含四个...

    oracle字段自增长

    在 Oracle 10g 的 EM 操作界面中,只需按照上图配置即可实现自增长序列,数据库端设置完成。在插入数据时,自增长字段可由空值 '' 或 null 代替,如果 insert 语句中列出了所插入的字段,如 insert into list(name) ...

    建立oracle带自增长表

    总的来说,通过组合使用序列和触发器,可以在Oracle中实现自增长列的功能,满足在插入新记录时自动为`ID`字段生成唯一值的需求。这种方式虽然相比其他数据库系统稍显复杂,但在Oracle环境中是标准的做法。

    Oracle与Mysql自动增长列(id)的区别

    综上所述,Oracle和MySQL在自动增长列的实现方式上有显著区别,Oracle依赖于序列,而MySQL直接在表定义中使用`AUTO_INCREMENT`。这些差异反映了两个数据库系统在设计哲学和功能上的不同,选择哪一个通常取决于具体的...

    在hibernate中实现oracle的自动增长

    本文将深入探讨如何在Hibernate中实现Oracle数据库的自动增长特性,这一功能对于确保数据表中的主键唯一性至关重要。 ### Oracle数据库的自动增长机制 Oracle数据库提供了强大的序列(sequence)功能来支持自动增长...

    powerdesigner创建oracle_数据库表,设置表主键列为自动增长

    **步骤2:设置自动增长列** 为了实现主键的自动增长功能,我们需要通过创建一个序列(sequence)来实现这一目标。 1. **在表视图中设置:** - 双击表视图,打开`Table Properties`对话框。 - 转到`Columns`选项卡...

    oracle 触发器方式实现行ID自增加

    这种实现方法确保了即使在多用户环境中,行ID也能保持唯一且顺序增长。 总结起来,Oracle数据库通过触发器和序列对象相结合,能有效实现行ID的自增加功能。这种技术在需要自动维护唯一标识符的场景下非常实用,例如...

    oracle实现属性的自增

    Oracle 中没有像 MySQL 中一样的 auto_increment 属性来实现属性值的自动增长。相反,Oracle 是通过序列和触发器来实现属性的自动增长的。 知识点二: 序列(Sequence) 序列是 Oracle 中的一种机制,可以生成连续...

    oracle序列主键自增长

    ### Oracle序列主键自增长知识点详解 在Oracle数据库中,序列是一...通过以上步骤,我们不仅创建了一个序列,还成功地实现了表中主键列的自增长。这种方式极大地简化了主键的管理,并且提高了数据处理的效率与安全性。

    oracle自增长与sqlserver一样好用

    本文将深入探讨Oracle中实现自增长序列(Sequence)与SQL Server中的自增列(Identity Column)的相似之处,以及如何在Oracle中通过序列和触发器来模拟SQL Server的自增列特性。 ### Oracle中的自增长序列...

    oracle全文检索的实现

    1. **数据存储**:逻辑搜索表的所有行,读取列中的数据。这一步骤涉及将原始数据或其指针载入系统,例如,URL_DATASTORE会将列数据解析为URL,以便进一步处理。 2. **过滤器**:提取文档数据并转换为文本表示。...

    Oracle数据库培训.ppt

    序列是 Oracle 数据库中的自动增长列,用于生成唯一的标识符。序列可以用于生成订单号、客户号等唯一标识符。 五、约束和索引 约束是 Oracle 数据库中的规则,用于限制数据的输入和修改。索引是 Oracle 数据库中的...

    对有自增长字段的表导入数据注意事项

    您可能感兴趣的文章:SQL Server设置主键自增长列(使用sql语句实现)oracle中的ID号实现自增长的方法mysql修改自增长主键int类型为char类型示例自增长键列统计信息的处理方法实现oracle数据库字段自增长(两种方式)

    SQL Server 打开或关闭自增长

    在SQL Server中,自增长(IDENTITY)列是一种特殊类型的字段,它会在每次插入新行时自动为该列提供一个唯一的、递增的值。这种功能对于创建序列化的主键非常有用,因为它们确保了数据的唯一性。然而,有时在特定情况...

    Oracle使用序列创建自增字段

    Oracle 序列是一个非常实用的功能,它能够方便地为表中的某列提供自动增长的数值。通过对序列的各种配置选项的理解和掌握,可以更好地满足不同的业务场景需求。希望本文对您理解并运用 Oracle 序列有所帮助。

Global site tag (gtag.js) - Google Analytics