반응형
1. 테이블을 새로 생성하여 적용하는 경우 (기존방식)
-- 1. 시퀀스생성
CREATE SEQUENCE 시퀀스이름;
-- ex
CREATE SEQUENCE board_sequence;
CREATE SEQUENCE board_sequence START 1;
-- 2. 테이블 생성하면서 시퀀스 적용하기
CREATE TABLE 테이블이름 (
컬럼이름 integer NOT NULL DEFAULT nextval('시퀀스이름')
);
-- ex
CREATE TABLE board (
board_no integer NOT NULL DEFAULT nextval('board_sequence')
);
2. 기존 테이블 컬럼에 적용하는 경우 (기존방식)
-- 1. 시퀀스 생성
CREATE SEQUENCE 시퀀스이름;
-- ex
CREATE SEQUENCE board_sequence;
-- 2. 기존 테이블 컬럼에 시퀀스 적용
ALTER TABLE 테이블이름 ALTER COLUMN 컬럼이름 SET DEFAULT nextval('시퀀스이름');
-- ex
ALTER TABLE board ALTER COLUMN board_no SET DEFAULT nextval('board_sequence');
3. 테이블을 새로 생성하여 적용하는 경우 (최근방식)
-- 1. SERIAL 타입으로 생성
create table 테이블이름(
no SERIAL
);
그리고 개발을 하다보면, 데이터를 INSERT하면서 생성된 튜플의 고유 index를 얻어와야 하는 경우가 있다.
그럴 경우에는 데이터를 넣자마자 매핑되어있는 시퀀스의 값을 바로 읽어와서 사용하면된다.
-- 1. 시퀀스의 현재 값 SELECT
SELECT currval('시퀀스이름');
-- example
SELECT currval('board_sequence');
-- 2. 시퀀스의 다음 값 SELECT => 호출시 시퀀스 증가
SELECT nextval('시퀀스이름');
-- example
SELECT nextval('board_sequence');
-- 3. 가장 최근에 사용한 시퀀스의 현재 값 SELECT
SELECT lastval();
반응형
'DataBase > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] 테이블 생성 및 실습 (0) | 2020.01.12 |
---|---|
[PostgreSQL] 문법 - COALESCE() 함수 (0) | 2019.11.26 |
[PostgreSQL] 문법 - CASE WHEN (0) | 2019.11.26 |
PostgreSQL Window 64Bit 설치 (0) | 2019.11.17 |
댓글