1

如果我在 Postgres 中创建以下序列:

CREATE SEQUENCE test
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
GRANT ALL ON SEQUENCE test TO testuser;
GRANT SELECT ON SEQUENCE test TO testuser2;

然后在pgAdmin中选择序列,鼠标右键-> CREATE script,我得到:

CREATE SEQUENCE test
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE test
  OWNER TO testuser;
GRANT ALL ON TABLE test TO testuser;
GRANT SELECT ON TABLE test TO testuser2;

所以在 GRANT 语句中,我看到关键字“TABLE”而不是“SEQUENCE”

  1. 这是为什么?
  2. pgAdmin 如何生成 DDL 提取?

这个问题与我在这里的其他问题之一有关:
Query GRANTS grant to a sequence in postgres

4

1 回答 1

1

在 PostgreSQL 中,序列有点像表。

目录 pg_class 对表和大多数其他具有列或与表类似的东西进行编目。这包括索引(但另见 pg_index)、序列、视图、复合类型和 TOAST 表;见relkind。

pg_class 的 PostgreSQL 文档,系统目录(系统表)之一

于 2011-09-08T01:27:27.600 回答