看起来select nextval('table_name')
实际上是增加了价值。
我的目标是nextval
在不实际进行任何增量的情况下“预测”数据库中所有表的值。这应该是只读操作。
我无法select nextval
在只读连接上运行,因为它实际上是在尝试进行交易。我希望能够查询它并监视只读副本数据库上的序列。
你将如何解决这个问题并实现目标?
因此,我遇到的根本问题是尝试将我的本地 Postgres 10.5 实例迁移到 RDS。RDS 不向最终用户提供该SuperUser
角色,因此当我尝试从 pg_dump 导入时遇到了大量权限问题。
例如,以用户身份登录postgres
- 这是我创建 RDS 实例时创建的用户。亚马逊所说的“root用户”:
CREATE SCHEMA f_site;
GRANT ALL ON SCHEMA f_site TO postgres;
GRANT ALL PRIVILEGES ON SCHEMA f_site TO postgres;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA f_site TO postgres;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA f_site TO postgres;
GRANT ALL PRIVILEGES ON DATABASE mydb to postgres;
Run Code Online (Sandbox Code Playgroud)
这些都已设置完毕,没有错误。现在,所有者发生了变化:
ALTER SCHEMA f_site OWNER TO schemaadmin;
Run Code Online (Sandbox Code Playgroud)
很好,但是如果我尝试立即运行另一个授权,只是为了测试我的权限,仍然以用户身份登录postgres
,同一会话:
GRANT ALL PRIVILEGES ON …
Run Code Online (Sandbox Code Playgroud)