当前位置:   article > 正文

oracle自增的两种办法,Oracle两种模式创建自增ID

oracle 自增id生成

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/626570
推荐阅读
相关标签
  

闽ICP备14008679号