오라클12c(Oracle 12c) – Default Values for Table Columns(Using Sequence), 시퀀스를 이용한 default 값 정의:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
오라클자바커뮤니티에서 설립한 오라클자바커뮤니티프로그래밍 실무교육센터
Oracle 12c에서 발전된 Sequence를 사용한 Default Values에 대해 알아보자.
컬럼의 기본값(default value)로 오라클 시퀀스의 CURRVAL, NEXTVAL을 사용할 수 있게 되었는데 이를 이용하면 식별자 컬럼(PK)에 사용하면 유용할 것이다.
예제를 보고 이해하자.
CREATE SEQUENCE onj_seq start with 1 increment by 1;
CREATE TABLE myemp (
empno NUMBER DEFAULT onj_seq.NEXTVAL,
name VARCHAR2(10)
);
INSERT INTO myemp (name) VALUES ('1&오라클자바커뮤니티프로그래밍실무학원');
INSERT INTO myemp (empno, name) VALUES (999, '오라클자바커뮤니티프로그래밍실무학원 ');
INSERT INTO myemp (empno, name) VALUES (NULL, 'oraclejavacommunity.com ');
SELECT * FROM myemp;
empno name
---------- ------------------------------
1 1&오라클자바커뮤니티프로그래밍실무학원
999 오라클자바커뮤니티프로그래밍실무학원
oraclejavacommunity.com
이 기능을 이용하면 Master, Detail 관계에서 자동으로 키 값을 생성하기에 좋다. 예제를 보자.
CREATE SEQUENCE m_seq;
CREATE SEQUENCE d_seq;
CREATE TABLE mydept(
deptno NUMBER DEFAULT m_seq.NEXTVAL,
dname VARCHAR2(30)
);
CREATE TABLE myemp (
empno NUMBER DEFAULT d_seq.NEXTVAL,
deptno NUMBER DEFAULT m_seq.CURRVAL,
ename VARCHAR2(30)
);
INSERT INTO mydept (dname) VALUES ('1번부서');
INSERT INTO myemp (ename) VALUES ('사원 1');
INSERT INTO myemp (ename) VALUES ('사원 2');
INSERT INTO mydept (dname) VALUES ('2번부서');
INSERT INTO myemp (ename) VALUES ('사원 3');
INSERT INTO myemp (ename) VALUES ('사원 4');
SELECT * FROM mydept;
deptno dname
---------- ------------------------------
1 1번부서
2 2번부서
SELECT * FROM myemp;
empno deptno ename
---------- ---------- ------------------------------
1 1 사원 1
2 1 사원 2
3 2 사원 3
4 2 사원 4
댓글 없음:
댓글 쓰기