我有一个 Postgres 数据库,其中包含有关服务器集群的详细信息,例如服务器状态(“活动”、“待机”等)。活动服务器在任何时候都可能需要故障转移到备用服务器,我不在乎特别使用哪个备用服务器。
我想要一个数据库查询来更改备用服务器的状态 - 只有一个 - 并返回要使用的服务器 IP。选择可以是任意的:因为服务器的状态随着查询而改变,所以选择哪个备用数据库并不重要。
是否可以将我的查询限制为一次更新?
这是我到目前为止所拥有的:
UPDATE server_info SET status = 'active'
WHERE status = 'standby' [[LIMIT 1???]]
RETURNING server_ip;
Run Code Online (Sandbox Code Playgroud)
Postgres 不喜欢这样。我可以做些什么不同的事情?
BEGIN;
INSERT INTO foo_table(foo_column) VALUES('a'),('b'),('c');
-- SELECT * FROM pg_stat_activity WHERE ...
-- shows records with a flag if they have been added/deleted/updated
END;
Run Code Online (Sandbox Code Playgroud)
有没有办法查看 PostgreSQL 9.x 中给定表的事务未提交的插入/删除?这纯粹是为了视觉确认。
虽然我最初的想法是否定的(只对表执行 SQL-Select),但某些用户想要可视化事务中的差异。如果有很多保存点和事务,我可以看到这会有什么帮助。因此,值得向整个社区询问。
我想检索在运行命令的过去一小时内修改的所有记录。它纯粹是一个元数据命令(不考虑任何表格列数据的内容)。我想识别在指定的时间持续时间内进行了一些 DML 修改的表和这些表的行。
在运行命令返回我要查找的信息之前,Postgres 是否需要特殊配置来跟踪如此详细的元数据?
我将运行什么查询来获取我正在寻找的结果?
我想知道 postgresql 中表的最后修改日期。在 SQL Server 中可以得到使用
SELECT modify_date FROM sys.objects
Run Code Online (Sandbox Code Playgroud)
如何在 Postgres 中得到同样的东西?我正在使用 Postgres 9.4