`

Oracle两种方式创建自增ID

阅读更多
1、方式一:使用序列和触发器

SQL> CREATE SEQUENCE test_sequence2
  2    increment by 1    -- 每次递增1
  3    start with 1       -- 从1开始
  4    nomaxvalue      -- 没有最大值
  5    minvalue 1       -- 最小值=1
  6    NOCYCLE;      -- 不循环

Sequence created.

SQL> CREATE TABLE test_create_tab2 (
  2    id   INT,
  3    val  VARCHAR(10),
  4    PRIMARY KEY (id)
  5  );

Table created.

SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
  2    BEFORE INSERT ON test_create_tab2
  3  FOR EACH ROW
  4  BEGIN
  5    SELECT test_sequence2.nextval INTO :new.id  FROM dual;
  6  END;
  7  /

Trigger created.

SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');

1 row created.

SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');

1 row created.

SQL> SELECT * FROM test_create_tab2;

        ID VAL
---------- --------------------
         1 NO id
         2 id no use

2、方式二:仅使用序列
[TEST1@orcl#27-12月-10] SQL>create table y_one(id number);

表已创建。

[TEST1@orcl#27-12月-10] SQL>create sequence y_seq start with 1 increment by 1 nomaxvalue nocycle
  2  ;

序列已创建。

[TEST1@orcl#27-12月-10] SQL>insert into y_one values(y_seq.nextval);

已创建 1 行。

[TEST1@orcl#27-12月-10] SQL>insert into y_one values(y_seq.nextval);

已创建 1 行。

[TEST1@orcl#27-12月-10] SQL>insert into y_one values(y_seq.nextval);

已创建 1 行。

[TEST1@orcl#27-12月-10] SQL>commit;

提交完成。

[TEST1@orcl#27-12月-10] SQL>select * from y_one;

        ID
----------
         1
         2
         3
分享到:
评论

相关推荐

    Oracle插入数据时获取自增ID

    ### Oracle插入数据时获取自增ID 在Oracle数据库中,当需要实现类似其他数据库系统(如MySQL、SQL Server等)中的自动增长字段功能时,通常会采用序列(sequence)和触发器(trigger)来实现这一需求。下面将详细...

    Oracle建立自增主键

    Oracle数据库提供了两种主要的方式来实现自增主键:`SEQUENCE`和`TRIGGER`。 #### 二、使用SEQUENCE实现自增主键 `SEQUENCE`是Oracle提供的一种对象类型,它可以用来生成连续的整数序列。通过`SEQUENCE`,我们可以...

    oracle实现属性的自增

    序列和触发器是 Oracle 中实现属性自增的两大机制。序列生成连续的数字,触发器将序列生成的数字插入到相应的字段中。两者结合实现了属性的自增。 知识点八: 自增属性的不连续现象 由于触发器是前触发型触发器,...

    Oracle中主键自增实例

    以下是一些关于在Oracle中创建主键自增实例的方法和相关知识点。 1. 使用序列(Sequences): Oracle序列是一种数据库对象,可以生成唯一的整数序列。创建序列后,可以在插入新记录时引用它来获取下一个可用的序列...

    如何实现Oracle自增,序列,触发器都有

    这种结合使用序列和触发器的方法是Oracle中一种常见的主键自增实现方式。它不仅确保了主键的唯一性和连续性,还大大提高了数据插入效率。在实际应用中,根据具体需求调整序列的参数以及触发器的逻辑是非常重要的。...

    MyBatis Oracle 自增序列的实现方法

    在Oracle中,有两种方式使用序列插入数据: 1. 先查询序列的下一个值,然后在`INSERT`语句中使用这个值。如上面的`<selectKey>`所示,先获取`SEQ_TABLE.NEXTVAL`,然后插入。 2. 直接在`INSERT`语句中使用`sequence....

    oracle迁移mysql自增序列问题

    总之,从Oracle迁移到MySQL时,处理自增序列的关键在于理解两种数据库系统的差异,并利用适当的SQL语句和系统变量来调整自增字段的行为,以满足迁移后的业务需求。在进行这样的迁移操作时,务必进行充分的测试和数据...

    Oracle 创建主键自增表示例代码

    在Oracle数据库中,创建具有自增主键的表通常涉及到序列(Sequences)和触发器(Triggers)的使用。序列是一种特殊的数据库对象,用于生成唯一的整数序列,而触发器则是在特定数据库操作(如INSERT)发生时自动执行...

    oracle自增长与临时表

    在Oracle数据库系统中,"自增长"和"临时表"是两个重要的概念,它们在数据库管理和数据处理中扮演着关键角色。自增长字段通常用于自动为新插入的记录生成唯一的标识符,而临时表则是在特定会话或事务中存储临时数据的...

    mybatis自增主键文档

    以下将详细讲解这两种数据库在MyBatis中的自增主键配置。 1. **Oracle Sequence 配置** 在Oracle中,你可以创建一个Sequence来生成唯一的序列号。在MyBatis中,你需要定义一个SQL片段来引用这个Sequence。以下是...

    ORACLE实现字段自增示例说明

    总结来说,Oracle中实现字段自增的两种主要方式是: 1. 直接在插入语句中引用序列的`nextval`,如`autoid.nextval`。 2. 创建一个触发器,由触发器在插入新行前自动为指定字段分配序列的下一个值。 通过以上方法,...

    实现oracle数据库字段自增长(两种方式)

    程序猿都知道mysql等其他的数据库都有随着记录的插入而表ID会自动增长的功能,反而oracle却没有这一功能,下面通过两种方式来解决字段增长的功能,具体内容情况下文。 因为两种方式都需要通过创建序列来实现,这里先...

    MySQL分表自增ID问题的解决方法

    针对MySQL的这种情况,我们可以采用以下两种策略来解决分表自增ID的问题: 1. **通过MySQL表生成ID** 创建一个单独的表,如`create_id`,用于生成ID。每次需要插入新数据时,先向`create_id`表插入一条空记录,...

    两种oracle创建字段自增长的实现方式

    以下是两种常见的在Oracle中创建字段自增长的方法: **解决方式一:序列+触发器** 1. **创建序列**: ```sql CREATE SEQUENCE SEQ_T_RECV MINVALUE 1 MAXVALUE 9999999 START WITH 1 INCREMENT BY 1 ...

    oracle序列创建、修改、删除

    在Oracle数据库中,序列(Sequence)是一种特殊的数据对象,它能自动地生成唯一的整数,通常用于为主键字段提供连续的标识符。序列的使用极大地简化了数据插入过程,特别是对于那些需要保持唯一性的整数字段,如员工...

    mysql数据库转oracle数据库工具

    4. 序列和自增ID处理:MySQL使用AUTO_INCREMENT关键字为表字段生成自增ID,而Oracle则通过序列(SEQUENCE)实现类似功能。转换工具需要处理这些自增ID,确保在Oracle中保持唯一性和连续性。 5. 权限和安全设置:...

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

    Oracle基本语句

    这条语句创建了一个名为 classes 的表,其中包括两个列:id 和 classname。 ### 查询表 在 Oracle 中,查询表需要使用 SELECT 语句,例如: ```sql SELECT * FROM classes; ``` 这条语句查询 classes 表中的所有...

    oracle 创建字段自增长实现方式

     因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式。 CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; ...

Global site tag (gtag.js) - Google Analytics