Get the App
SLTechnology News&Howtos  ›  Database  › 

Self-increment implementation of oracle column

Shulou Source: shulou.com Published: 2022-06-01 09:51:04 10月28日 Update

1.Sequence+Trigger implements self-increment of Oracle columns

CREATE SEQUENCE sequence name

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/MINVALUE n | NOMAXVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

Create a test table

Sys@newtestCDB > CREATE TABLE TEST (

2 ID NUMBER (10) NOT NULL

3 DESCRIPTION VARCHAR2 (50) NOT NULL

4 CONSTRAINT test_pk PRIMARY KEY (ID)

5)

Table created.

Elapsed: 00:00:00.14

Sys@newtestCDB > CREATE SEQUENCE test_seq

Sequence created.

Elapsed: 00:00:00.02

Elapsed: 00:00:00.38

Sys@newtestCDB > CREATE OR REPLACE TRIGGER test_before_insert

2 BEFORE INSERT ON test

3 FOR EACH ROW

4 BEGIN

5 SELECT test_seq.NEXTVAL INTO: new.id FROM dual

6 END

7 /

Trigger created.

Elapsed: 00:00:00.12

Sys@newtestCDB > INSERT INTO TEST (DESCRIPTION) VALUES ('do not specify ID')

1 row created.

Elapsed: 00:00:00.08

Sys@newtestCDB > INSERT INTO TEST (ID, DESCRIPTION) VALUES (TEST_USER.DEPT_SEQ.NEXTVAL, 'specify ID')

INSERT INTO TEST (ID, DESCRIPTION) VALUES (TEST_USER.DEPT_SEQ.NEXTVAL, 'specify ID')

*

ERROR at line 1:

ORA-02289: sequence does not exist

Elapsed: 00:00:00.01

Sys@newtestCDB > INSERT INTO TEST (ID, DESCRIPTION) VALUES (TEST_SEQ.NEXTVAL, 'specify ID')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > SELECT * FROM TEST

ID DESCRIPTION 1 does not specify ID 3 specify ID

Elapsed: 00:00:00.03

2.DEFAULT Values Using Sequences

Sys@newtestCDB > INSERT INTO TEST (description) VALUES ('DESCRIPTION only')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > INSERT INTO TEST (id, description) VALUES (999, 'ID=999 and DESCRIPTION')

1 row created.

Elapsed: 00:00:00.00

Sys@newtestCDB > INSERT INTO TEST (id, description) VALUES (NULL, 'ID=NULL and DESCRIPTION')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > SELECT * FROM test

ID DESCRIPTION 4 DESCRIPTION only 999 ID=999 and DESCRIPTION ID=NULL and DESCRIPTIONElapsed: 00:00:00.02

Sys@newtestCDB > CREATE TABLE TEST (

2 ID NUMBER (10) DEFAULT ON NULL test_seq.NEXTVAL

3 DESCRIPTION VARCHAR2 (50) NOT NULL

4)

Table created.

Elapsed: 00:00:00.02

Sys@newtestCDB > INSERT INTO TEST (description) VALUES ('DESCRIPTION only')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > INSERT INTO TEST (id, description) VALUES (999, 'ID=999 and DESCRIPTION')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > INSERT INTO TEST (id, description) VALUES (NULL, 'ID=NULL and DESCRIPTION')

1 row created.

Elapsed: 00:00:00.01

Sys@newtestCDB > SELECT * FROM test

ID DESCRIPTION 5 DESCRIPTION only 999 ID=999 and DESCRIPTION 6 ID=NULL and DESCRIPTION

Elapsed: 00:00:00.02

3. Look in the last article.

Tags: Previous one test Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno OPPO Reno Xiaomi Shulou Tech Info Apple Linux