1. 배경
데이터를 넣을 때마다 일련번호가 증가하는 컬럼을 만들고 싶음.
2. 방법
시퀀스를 만들고 컬럼이 해당 시퀀스를 바라보게 하는 방법도 있지만, SERIAL을 사용하면 쉽게 해결된다. 예를 다음과 같음.
CREATE TABLE data_log ( seq serial primary key, currenttime timestamp default current_timestamp, service varchar(50), data_name varchar(200), value varchar(100) );
3. 인덱스 생성
현재 인덱스를 확인함.
# SELECT * FROM pg_indexes WHERE tablename = 'api_log'; schemaname | tablename | indexname | tablespace | indexdef ------------+-----------+--------------+------------+---------------------------------------------------------------------- public | api_log | api_log_pkey | | CREATE UNIQUE INDEX api_log_pkey ON public.api_log USING btree (seq) (1 row)
seq에 걸려있음을 확인할 수 있다.
이제 service, data_name 컬럼을 사용하는 멀티인덱스를 만들어보려 한다.
# CREATE INDEX index_name ON api_log (service, data_name);
인덱스 생성이 완료되면 CREATE INDEX라고 뜬다.
# CREATE INDEX index_name ON api_log (service, data_name); CREATE INDEX
이제 다시 인덱스 리스트를 확인해봄.
# SELECT * FROM pg_indexes WHERE tablename = 'api_log'; schemaname | tablename | indexname | tablespace | indexdef ------------+-----------+--------------+------------+---------------------------------------------------------------------------- public | api_log | api_log_pkey | | CREATE UNIQUE INDEX api_log_pkey ON public.api_log USING btree (seq) public | api_log | index_name | | CREATE INDEX index_name ON public.api_log USING btree (service, data_name) (2 rows)