====== Oracle - SQL - Sequence - Using a Sequence in a Table Column - From Oracle 12c ======
From Oracle 12c, a Sequence can be associated with a Table Column via the Identity Column.
----
===== Create a table using the identity column for the id column =====
CREATE TABLE test(
id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
title VARCHAR2(255) NOT NULL
);
**NOTE:** This creates a Sequence that is associated with the id column of the table.
* Because the Sequence is automatically generated for the id column, the name of the sequence may differ each time.
* Oracle uses the **sys.idnseq$** to store the link between the table and the sequence.
----
===== Return the association of the Tble and the Sequence =====
SELECT a.name AS table_name,
b.name AS sequence_name
FROM sys.idnseq$ c
JOIN obj$ a ON c.obj# = a.obj#
JOIN obj$ b ON c.seqobj# = b.obj#
WHERE a.name = 'TEST';
----
===== Test =====
==== Insert some rows into the test Table ====
INSERT INTO test(title)
VALUES('This is a test');
INSERT INTO test(title)
VALUES('This is another test');
----
==== Query data from the test Table ====
SELECT id, title
FROM test;