正如描述的问题标题,我们可以在列级添加PRIMARY KEY
约束:
animals=# CREATE TABLE temp (
id serial UNIQUE PRIMARY KEY);
CREATE TABLE
animals=# \d temp
Table "public.temp"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+----------------------------------
id | integer | | not null | nextval('temp_id_seq'::regclass)
Indexes:
"temp_pkey" PRIMARY KEY, btree (id)
或者在桌面上:
animals=# CREATE TABLE temp_1 (
id serial UNIQUE,
PRIMARY KEY (id));
CREATE TABLE
animals=# \d temp_1
Table "public.temp_1"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+------------------------------------
id | integer | | not null | nextval('temp_1_id_seq'::regclass)
Indexes:
"temp_1_pkey" PRIMARY KEY, btree (id)
PRIMARY KEY
约束(或其他约束)这两种方法之间是否有明显的区别?谢谢。
完全没有区别。 名称本身,PRIMARY KEY表明它不是在单个列级别定义的东西。
您在“列级别”上调用的实际上只不过是主键在单个列中时的便捷语法。
顺便说一句,主键意味着NOT NULL UNIQUE
,所以你可以跳过将它们定义为UNIQUE
。
您可以参考以下文章:http://covelign.com/3Y8P