我在Postgres中创建了下表...
create table printq (
model varchar(20),
session integer,
timestamp timestamp DEFAULT now(),
id serial);
它似乎正是我需要它...它自动递增id列,当我使用truncate“RESTART IDENTITY”清除表时它会重置序列(这就是我在第一次重建表的原因) place - 用于在截断时不重新启动的id列)
无论如何,当我在桌面上做一个\ d时,我看不到任何关于主键的信息。
Table "public.printq"
Column | Type | Modifiers
-----------+-----------------------------+-----------------------------------------------------
model | character varying(20) |
session | integer |
timestamp | timestamp without time zone | default now()
id | integer | not null default nextval('printq_id_seq'::regclass)
三个问题:
ID列是否已成为主键,因为它自动递增?
如果没有,为什么这个表需要一个主键,因为它似乎工作正常?我知道基本上每个表都应该有一个主键,但为什么呢?
最后,\ d命令会告诉我这个表是否有主键吗?如果没有,会告诉我什么?
答案 0 :(得分:5)
id serial primary key
。