일련번호 생성
최소 지원 버전은 약간의 차이가 있을 수 있습니다.
- 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'), '값');