MSA Full-Stack 개발자 양성 과정 -25일차 노트 필기_데이터베이스(Oracle) Sequence, Transaction, 계층형 쿼리_220825
Sequence
: 자동증가값을 설정
: not null이면서 pk인 대상에 sequence를 사용하는 것이 권장되다.
ex) 게시판의 글번호
: 시퀀스 생성
create sequence 시퀀스이름 -- 1부터 시작
[start with 시작값 ]
[increment by 증가치 ]
[maxvalue 최대값 ]
[minvalue 최소값 ]
[cycle | nocycle ] : cycle의 경우, 최대값(maxvalue)까지 오면 다시 최소값으로 돌아감(minvalue)
[cache | nocache ] : cache 사용시, 중간값 분실이 있을 수 있음, nochache 권장
: 시퀀스 수정
alter sequence 시퀀스이름 수정내용;
:시퀀스 삭제
drop sequence 시퀀스이름;
: 시퀀스 사용법
1) 시퀀스이름.NEXTVAL: 시퀀스 값을 증가
2) 시퀀스이름.CURRVAL: 시퀀스의 현재값을 조회
Transaction
: insert ,update ,delete를 수행한 결과를 저장(commit), 취소(rollback) 할 수 있다.
특정 영역을 나누어서 저장, 취소를 선택적으로 할 수 있다
: savepoint 이름; =>SQL실행 전에 영역을 분할함.
ex) savepoint A;
: rollback 이름; => 특정 영역에 해당하는 부분까지 취소됨.
ex) rollback to A;
**Commit - 전체저장완료
**Rollback - 전체취소
다른계정에 있는 테이블 접근하기
현재 계정 안에서 다른 계정에 있는 테이블을 접근하고 싶을 때,
: 권한이 있다면, 계정명.테이블이름 가능하다.
권한부여
: GRANT ALL ON 계정명.테이블이름 TO 부여할계정명;
권한제거
: REVOKE ALL ON 계정명.테이블이름 FROM 부여할계정명;
계층형 쿼리