CREATE SEQUENCEで自動的に割り付けるIDを定義する
mydb=# CREATE SEQUENCE auto_identified_id_seq;
CREATE SEQUENCE
テーブルを作成する
mydb=# CREATE TABLE auto_identified(
mydb(# id integer PRIMARY KEY UNIQUE DEFAULT nextval('auto_identified_id_seq'),
mydb(# name varchar(128) NOT NULL);
NOTICE: CREATE TABLE / UNIQUE will create implicit index "auto_identified_id_key" for table "auto_identified"
CREATE TABLE
確認
mydb=# \d auto_identified
Table "public.auto_identified"
Column | Type | Modifiers
--------+------------------------+-----------------------------------------------------
id | integer | default nextval('auto_identified_id_seq'::regclass)
name | character varying(128) | not null
Indexes:
"auto_identified_id_key" UNIQUE, btree (id)
これでテーブルができました。
データを入力して自動でUNIQUE KEYが入っているか確認する
mydb=# INSERT INTO auto_identified(
mydb(# name) VALUES (
mydb(# 'iida');
INSERT 0 1
確認
mydb=# SELECT * FROM auto_identified;
id | name
----+------
1 | iida
(1 row)
自動でUNIQUE KEYが割り当てられている!