[오라클12C,ORACLE12C 새기능]테이블생성시 명시적 NULL 기본값설정, 오라클 default value
"col NUMBER DEFAULT default_seq.NEXTVAL" 등과 같이 기본값을 주더라도 명시적으로 NULL값을 insert해 버리면 기본값은 설정되지 않고 NULL로 입력된다.
오라클12C는 ON NULL구를 통해 NULL이 입력되는 경우 기본값을 별도로 정의할수 있다.
아래 예를 보자.
CREATE SEQUENCE first_seq;
CREATE SEQUENCE second_seq;
CREATE TABLE test (
id1 NUMBER DEFAULT first_seq.NEXTVAL,
id2 NUMBER DEFAULT ON NULL second_seq.NEXTVAL, --NULL or 값이안들어올때도 설정한 기본값
name VARCHAR2(30)
);
id1 NUMBER DEFAULT first_seq.NEXTVAL,
id2 NUMBER DEFAULT ON NULL second_seq.NEXTVAL, --NULL or 값이안들어올때도 설정한 기본값
name VARCHAR2(30)
);
INSERT INTO test (name) VALUES ('홍길동');
INSERT INTO test (id1, id2, name) VALUES (9, 9, '9길동');
INSERT INTO test (id1, id2, name) VALUES (NULL, NULL, '널길동');
SELECT * FROM test;
id1 id2 name
---------- ---------- ------------------------------
1 1 홍길동
9 9 9길동
1 1 홍길동
9 9 9길동
2 널길동
댓글 없음:
댓글 쓰기