PostgreSQL 创建唯一索引
唯一索引可以用于强制表字段值的唯一性,或者强制多个字段组合值的唯一性。目前 PostgreSQL 只支持 B-tree 索引定义为唯一索引。
1. PostgreSQL 创建唯一索引语法
CREATE UNIQUE INDEX name ON table (column [, ...]);
通过 create unique index 语法创建唯一索引。
2. 创建唯一索引示例
create table t(id int, name text); create unique index uk_name on t(name);
插入 name 相同的记录,则会报错,如下:
postgres=# insert into t values (1,'abc'); INSERT 0 1 postgres=# insert into t values (2,'abc'); ERROR: duplicate key value violates unique constraint "uk_name" DETAIL: Key (name)=(abc) already exists.
3. 查看唯一索引
通过 \d+ 命令查看表结构可以看到唯一索引的信息,如下:
postgres=# \d+ t Table "public.t" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description --------+---------+-----------+----------+---------+----------+--------------+------------- id | integer | | | | plain | | name | text | | | | extended | | Indexes: "uk_name" UNIQUE, btree (name) Access method: heap
4. 删除唯一索引
通过 drop index 命令删除唯一索引,uk_name 为唯一索引的名称。
drop index uk_name;
文章评论
共0条评论