살인!
postgresql
postgresql - PostgreSQL에서 MySQL의 AUTO_INCREMENT와 같은 자동증가 컬럼, limit 명령
이 름 : 바다아이
|
조회수 : 9009
짧은 주소 : https://www.bada-ie.com/su/?751591780502
자동증가 컬럼 생성
1. 테이블 생성시 Serial로 생성
MySQL의 AUTO_INCREMENT 와 같이 자동증가 값을 사용하기 위해선 컬럼을 serial 또는 bigserial 로 생성하면 된다
CREATE TABLE DEMO1 ( SEQ SERIAL , NAME VARCHAR ( 20 ) ) ;
CREATE TABLE DEMO2 ( SEQ BIGSERIAL , NAME VARCHAR ( 20 ) ) ;
이렇게 생성된 컬럼은 serial의 경우 4byte integer, bigserial은 8byte integer가 된다.
다만 Unique constraint를 가지길 원하거나 Primary Key가 되길 원한다면 따로 지정해 주어야 한다.
2. Sequence 생성 후 컬럼에 Default로 적용
Sequence를 생성하고 원하는 컬럼에 Default를 적용한다
CREATE SEQUENCE < sequence name > ;
CREATE TABLE < table name > (
< column name > integer NOT NULL DEFAULT nextval ( '<sequence name>' )
) ;
ALTER SEQUENCE < sequence name > OWNED BY < table name > . < column name > ;
이미 존재하는 테이블의 컬럼에는 다음과 같이 ALTER TABLE을 통해 적용한다.
CREATE SEQUENCE < sequence name > ;
ALTER TABLE < table name > ALTER COLUMN < column name > SET DEFAULT nextval ( '<sequence name>' ) ;
ALTER SEQUENCE < sequence name > OWNED BY < table name > . < column name > ;
최근에 추가된 SERIAL 값 조회하기
특정 Sequence의 값을 조회하려면
SELECT currval ( '<sequence name>' ) ;
최근 Sequence의 값을 조회하려면 간단하게
INSERT 쿼리에서 RETURNING을 사용해도 된다.
INSERT INTO < table name > ( NAME ) VALUES ( 'value' ) RETURNING < serial column > ;
SELECT
*
FROM
TABLE_NAME LIMIT 10;
SELECT
*
FROM
TABLE_NAME LIMIT 10 OFFSET 0;
SELECT
*
FROM
TABLE_NAME LIMIT 10 OFFSET 10;
출처 : http://blog.secretmuse.net/?p=27
|
|