사용자 도구

사이트 도구


사이드바

기술문서:레퍼런스:쿼리:기본:일련번호_생성

일련번호 생성

최소 지원 버전은 약간의 차이가 있을 수 있습니다.
- MySQL/MariaDB, PostgreSQL: 세부 버전까지 표시
- MSSQL, Oracle/Tibero: 제품 버전까지 표시

테이블 명세

논리명 물리명 타입 길이 KEY
일련번호 sn 숫자형 PK
값 value 문자형 100

MySQL/MariaDB

자동 증가

/*
	MySQL 3.0 이상/MariaDB 5.1 이상
*/
CREATE TABLE ex_serial_number (
	sn BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

INSERT INTO ex_serial_number (value) VALUES ('값');

시퀀스

CREATE TABLE ex_serial_number (
	sn BIGINT NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

/*
	MariaDB 10.3 이상
*/
CREATE SEQUENCE ex_serial_number_seq
	START WITH 1
	INCREMENT BY 1
	MINVALUE 1
	MAXVALUE 9223372036854775806 -- 최댓값은 Signed BIGINT - 1
	NOCYCLE
	CACHE 20
;

INSERT INTO ex_serial_number (sn, value) VALUES (NEXT VALUE FOR ex_serial_number_seq, '값');
-- INSERT INTO ex_serial_number (sn, value) VALUES (NEXTVAL('ex_serial_number_seq'), '값');

MSSQL

자동 증가

/*
	MSSQL 7.0 이상
*/
CREATE TABLE ex_serial_number (
	sn BIGINT IDENTITY (1, 1) NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

INSERT INTO ex_serial_number (value) VALUES ('값');

시퀀스

CREATE TABLE ex_serial_number (
	sn BIGINT NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

/*
	MSSQL 2012 이상
*/
CREATE SEQUENCE ex_serial_number_seq
	AS BIGINT
	START WITH 1
	INCREMENT BY 1
	MINVALUE 1
	MAXVALUE 9223372036854775806 -- 최댓값은 Signed BIGINT - 1
	NO CYCLE
	CACHE 20
;

INSERT INTO ex_serial_number (sn, value) VALUES (NEXT VALUE FOR ex_serial_number_seq, '값');

Oracle/Tibero

자동 증가

-- Oracle 12c 이상
CREATE TABLE ex_serial_number (
	sn NUMBER GENERATED ALWAYS AS IDENTITY NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

INSERT INTO ex_serial_number (value) VALUES ('값');

시퀀스

CREATE TABLE ex_serial_number (
	sn NUMBER NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

/*
	Oracle 8i 이상/Tibero 6 이상
*/
CREATE SEQUENCE ex_serial_number_seq
	START WITH 1
	INCREMENT BY 1
	MINVALUE 1
	MAXVALUE 9999999999999999999999999999 -- 최댓값은 양의 정수 28자리
	NOCYCLE
	CACHE 20
	NOORDER
;

INSERT INTO ex_serial_number (sn, value) VALUES (ex_serial_number_seq.NEXTVAL, '값');

PostgreSQL

자동 증가

/*
	PostgreSQL 8.4 이상
*/
CREATE TABLE ex_serial_number (
	sn BIGSERIAL NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

/*
	PostgreSQL 10 이상
*/
CREATE TABLE ex_serial_number (
	sn BIGINT GENERATED ALWAYS AS IDENTITY NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

INSERT INTO ex_serial_number (value) VALUES ('값');

시퀀스

CREATE TABLE ex_serial_number (
	sn BIGINT NOT NULL PRIMARY KEY,
	value VARCHAR(100) NOT NULL
);

/*
	PostgreSQL 6.0 이상
*/
CREATE SEQUENCE ex_serial_number_seq
	START WITH 1
	INCREMENT BY 1
	MINVALUE 1
	MAXVALUE 9223372036854775806 -- 최댓값은 Signed BIGINT - 1
	NO CYCLE
	CACHE 20
;

/*
	PostgreSQL 10.0 이상
*/
CREATE SEQUENCE ex_serial_number_seq
	AS BIGINT
	START WITH 1
	INCREMENT BY 1
	MINVALUE 1
	MAXVALUE 9223372036854775806 -- 최댓값은 Signed BIGINT - 1
	NO CYCLE
	CACHE 20
;

INSERT INTO ex_serial_number (sn, value) VALUES (NEXTVAL('ex_serial_number_seq'), '값');