DEFAULT Values for Table Columns : Enhancements in Oracle Database 12c Release 1 (12.1)
This article describes the changes to table column defaults in Oracle Database 12c.
oracle 12cconfigurationintermediate
by OracleDba
13 views
This article describes the changes to table column defaults in Oracle Database 12c.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
CREATE SEQUENCE t1_seq;
CREATE TABLE t1 (
id NUMBER DEFAULT t1_seq.NEXTVAL,
description VARCHAR2(30)
);
INSERT INTO t1 (description) VALUES ('DESCRIPTION only');
INSERT INTO t1 (id, description) VALUES (999, 'ID=999 and DESCRIPTION');
INSERT INTO t1 (id, description) VALUES (NULL, 'ID=NULL and DESCRIPTION');
SELECT * FROM t1;
ID DESCRIPTION
---------- ------------------------------
1 DESCRIPTION only
999 ID=999 and DESCRIPTION
ID=NULL and DESCRIPTION
3 rows selected.
SQL>
CREATE SEQUENCE master_seq;
CREATE SEQUENCE detail_seq;
CREATE TABLE master (
id NUMBER DEFAULT master_seq.NEXTVAL,
description VARCHAR2(30)
);
CREATE TABLE detail (
id NUMBER DEFAULT detail_seq.NEXTVAL,
master_id NUMBER DEFAULT master_seq.CURRVAL,
description VARCHAR2(30)
);
INSERT INTO master (description) VALUES ('Master 1');
INSERT INTO detail (description) VALUES ('Detail 1');
INSERT INTO detail (description) VALUES ('Detail 2');
INSERT INTO master (description) VALUES ('Master 2');
INSERT INTO detail (description) VALUES ('Detail 3');
INSERT INTO detail (description) VALUES ('Detail 4');
SELECT * FROM master;
ID DESCRIPTION
---------- ------------------------------
1 Master 1
2 Master 2
2 rows selected.
SQL>
SELECT * FROM detail;
ID MASTER_ID DESCRIPTION
---------- ---------- ------------------------------
1 1 Detail 1
2 1 Detail 2
3 2 Detail 3
4 2 Detail 4
4 rows selected.
SQL>123456789101112131415161718192021222324252627282930313233
CREATE SEQUENCE default_seq;
CREATE SEQUENCE default_on_null_seq;
CREATE TABLE t2 (
col1 NUMBER DEFAULT default_seq.NEXTVAL,
col2 NUMBER DEFAULT ON NULL default_on_null_seq.NEXTVAL,
description VARCHAR2(30)
);
INSERT INTO t2 (description) VALUES ('DESCRIPTION only');
INSERT INTO t2 (col1, col2, description) VALUES (999, 999, '999,999,DESCRIPTION');
INSERT INTO t2 (col1, col2, description) VALUES (NULL, NULL, 'NULL,NULL,DESCRIPTION');
SELECT * FROM t2;
COL1 COL2 DESCRIPTION
---------- ---------- ------------------------------
1 1 DESCRIPTION only
999 999 999,999,DESCRIPTION
2 NULL,NULL,DESCRIPTION
3 rows selected.
SQL>
desc t2
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER
COL2 NOT NULL NUMBER
DESCRIPTION VARCHAR2(30)
SQL>Please to add comments
No comments yet. Be the first to comment!