시퀀스 생성

 

*사용법

CREATE SEQUENCE sepuence

[INCREMENT BY n]

[START WITH n]

[MAXVALUE n | NOMAXVALUE]

[MINVALUE n | NOMINVALUE]

[CYCLE | NOCYCLE]

[CACHE n | NOCACHE] ;

 

-INCREMENT BY n : 시퀀스 번호의 증가치로 기본은 1, 일반적으로 -1 사용

-START WITH n : 시퀀스 시작번호, 기본값은 1

-MAXVALUE n : 생성 가능한 시퀀스의 최대값

-MAXVALUE n : 시퀀스 번호를 순환적으로 사용하는 cycle로 지정한 경우, MAXVALUE에 도달한 후 새로 시작하는 시퀀스 값

-CYCLE | NOCYCLE : MAXVALUE 또는 MINVALUE에 도달한 후 시퀀스의 순환적인 시퀀스 번호의 생성 여부 지정

-CACHE n | NOCACHE : 시퀀스 생성 속도 개선을 위해 메모리에 캐쉬하는 시퀀스 개수, 기본값은 20

 

 

시퀀스

 

*시퀀스 개요

-유일한 식별자

-기본 키 값을 자동으로 생성하기 위하여 일련번호 생성 객체

-예를 들면, 웹 게시판에서 글이 등록되는 순서대로 번호를 하나씩 할당하여 기본키로 지정하고자 할 때 시퀀스를 편리하게 이용

-여러 테이블에서 공유 가능

 

 

*ROLLBACK 개요

 

-하나의 트랜잭션에서 실행된 SQL 명령문의 처리결과를 취소

-CPU, 메모리 같은 해당 트랜잭션에 할당된 자원을 해제, 트랜잭션을 강제 종료

 

 

*COMMIT 개요

 

-하나의 트랜잭션에서 실행되는 모든 SQL 명령문의 처리 결과가 하드디스크에 안전하게 보장되는 것을 보장

-처리 결과를 디스크에 영구적으로 저장

-해당 트랜잭션에 할당된 CPU, 메모리 같은 자원이 해제

-서로 다른 트랜잭션을 구분하는 기준

-COMMIT 명령문 실행하기 전에 하나의 트랜잭션 변경한 결과를 다른 트랜잭션에서 접근할 수 없도록 방지하여 일관성 유지

 

트랜잭션 관리

 

*트랜잭션 개요

-관계형 데이터베이스에서 실행되는 여러 개의 SQL 명령문을 하나의 논리적 작업 단위로 처리하는 개념

-COMMIT : 트랜잭션의 정상적인 종료

-ROLLBACK : 트랜잭션의 전체 취소

 

[표10.1] 명시적인 트랜잭션 제어 명령문 

 

 

MERGE 사용 예

 

SQL> merge into professor p

   2   using professor temp f

   3   on (p.profno = f.profno)

   4   when matched then

   5   update set p.position = f.position

   6   when not matched then

   7   insert values(f.profno, f.name, f.userid, f.position, f.sal, f.hiredate, f.comm, f.deptno);

 

3 rows merged.

 

SQL> select * from professor;

9 rows selected.

 

 

 

MERGE 사용 예

 

SQL> select * from professor;

 

8 rows selected.

SQL> select * from professor_temp;

 

 

MERGE 사용 예

 

*사용 예

-professor 테이블과 professor_temp 테이블을 비교하여 professor 테이블에 있는 기존 데이터는 professor_temp 테이블의 데이터에 의해 수정하고, professor 테이블에 없는 데이터는 신규로 입력한다.

 

 

+ Recent posts