首页 > 解决方案 > Postgres 的 Oracle 主键

问题描述

我正在将表从 Oracle 迁移到 Postgres。

在 Oracle 表上创建主键时,它会隐式创建同名的唯一索引。但是在 Postgres 中没有创建这样的索引,或者它在数据字典表中不可见。

Postgres 不允许使用主键名称创建索引。我想知道 Postgres 在主键列上是否需要唯一索引。如果我不为主键列创建唯一索引,它会以任何方式改变查询性能吗?提前致谢。

标签: postgresqlora2pg

解决方案


这是不正确的:

create table pk_test (id integer primary key);

 \d pk_test
              Table "public.pk_test"
 Column |  Type   | Collation | Nullable | Default 
--------+---------+-----------+----------+---------
 id     | integer |           | not null | 
Indexes:
    "pk_test_pkey" PRIMARY KEY, btree (id)

推荐阅读