inser文発行時に自動採番する方法

serial型

テーブルを作成する際に、自動的に番号を採番したいフィールドに対しserial型を指定する。
※serial型を指定すると自動的にシーケンスが作成される。

create table sequence_test (
  auto_no serial ,
  name varchar(50),
  primary key(auto_no)
);

insert into sequence_test (name) values('test1');
insert into sequence_test (name) values('test2');

select * from sequence_test;
--auto_no, name
--1, test1
--2, test2

--sequence_test_auto_no_seqというシーケンスが自動的に作成され連番を振っている。



シーケンスを作成しcreta tableに組み込む

テーブルを作成する際に、あらかじめ作成したシーケンスを指定する。

create sequence sequence_test_seq;

create table sequence_test (
  auto_no int DEFAULT nextval('sequence_test_seq'),
  name varchar(50),
  primary key(auto_no)
);

insert into sequence_test (name) values('test1');
insert into sequence_test (name) values('test2');

select * from sequence_test;
--auto_no, name
--1, test1
--2, test2