숫자가 하나씩 자동으로 증가하는 ID를 생성하기 위해서는 PostgreSQL 에서 sequence라는 것을 사용한다.
- 시퀀스 생성 방법
CREATE SEQUENCE 시퀀스이름 START 1;
- 시퀀스 삭제 방법
DROP SEQUENCE 시퀀스이름;
- 시퀀스 사용 방법
SELECT nextval('시퀀스이름');
SELECT currval('시퀀스이름');
-- 테이블 CREATE 시 DEFAULT로 지정
CREATE TABLE 테이블 (
id integer DEFAULT nextval('시퀀스이름'),
name varchar(10),
age integer
);
INSERT INTO (
name
, age
) VALUES (
'aaa'
,15
);
-- DEFAULT 없는 테이블
INSERT INTO (
id
, name
, age
) VALUES (
nextval('시퀀스이름')
, 'aaa'
, 15
);
- 기본 사용은 nextval('시퀀스이름')과 같이 사용한다.
- currval('시퀀스이름')은 사용한 시퀀스의 마지막 번호를 반환한다.
- nextval로 단순히 조회만해도 시퀀스가 올라간다.
- 위처럼 테이블 생성시에 디폴트로 시퀀스 값을 지정해주면 insert 시에 따로 기재하지 않아도 자동으로 들어간다.
- 디폴트로 시퀀스를 지정해주지 않은 테이블은 insert문에 nextval을 사용하여 insert 한다.
- 시퀀스 초기화 방법
ALTER SEQUENCE 시퀀스이름 RESTART WITH 1;
- restart하고자 하는 시퀀스는 1이 아니어도 가능
- 시퀀스를 사용하여 데이터를 insert할 때는 시퀀스이름을 single quote(')로 감싸줘야 하지만, 시퀀스 초기화 시에는 시퀀스 이름만 넣어주면된다.
'프로그래밍' 카테고리의 다른 글
centos7 에 oracle 19c - silent 버전 설치하기 (2) | 2023.04.07 |
---|---|
sevice 로그 확인하기 (0) | 2023.04.07 |
[MariaDB] 테이블 인코딩 변경하기 (0) | 2023.02.11 |
scp 파일 전송 방법(서버 to 서버) (0) | 2023.02.10 |
16진수 한 자리는 몇 비트일까? (0) | 2023.01.10 |