serial
多かれ少なかれ、列タイプであるため、integer serial
text text
と言っているようなものです 、serial
と言うだけです :
CREATE TABLE IF NOT EXISTS "category" (
"id" SERIAL PRIMARY KEY,
"name" varchar(30) DEFAULT NULL
);
自分でシーケンスを作成する場合は、デフォルト値のid
を作成します。 シーケンス内の次の値。つまり、default nextval('your_seq')
と言います。 :
CREATE SEQUENCE your_seq;
CREATE TABLE IF NOT EXISTS "category" (
"id" integer PRIMARY KEY default nextval('your_seq'),
"name" varchar(30) DEFAULT NULL
);
通常のserial
をシミュレートするには テーブルが所有するシーケンスも作成する必要がある動作:
alter sequence your_seq owned by category.id;
シリアルタイプ を読む マニュアルのセクションは実り多いかもしれません。
また、必要がない限り、テーブル名と列名を二重引用符で囲まないことをお勧めします。 PostgreSQLは識別子を小文字に折りたたむので、id
および"id"
同じことですが、不必要な引用は悪い習慣であり、どこでも引用の大きな混乱につながる可能性があります。