Postgres中“隐含序列”和“隐含索引”是什么意思?

时间:2013-11-02 02:34:39

标签: postgresql

我刚在Postgres中创建了一个表,并收到一条通知消息,我对隐式索引和序列并不完全了解。任何澄清将不胜感激。

my_database=# CREATE TABLE sites
my_database-# (
my_database(# site_id_key serial primary key,
my_database(# site_url VARCHAR(255),
my_database(# note VARCHAR(255),
my_database(# type INTEGER,
my_database(# last_visited TIMESTAMP
my_database(# ) ;
NOTICE:  CREATE TABLE will create implicit sequence "sites_site_id_key_seq" for serial column "sites_to_search.site_id_key"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "sites_pkey" for table "sites_to_search"
CREATE TABLE

1 个答案:

答案 0 :(得分:4)

PostgreSQL中的某些内容由索引和序列处理。这些包括串行和bigserial类型,唯一约束和主键。这些并不隐含在PostgreSQL中(因此通知有点误导),而是隐含在PostgreSQL运行的DDL中。

换句话说,索引和序列只是正常的索引和序列。它们只是由PostgreSQL自动创建,以便提供您在DDL中请求的保证和功能。