我刚刚为macOS Sierra安装了pgAdmin 4版本 3.0.0 ,替换了与在同一台 Mac 上本地运行的Postgres 10.3捆绑在一起的pgAdmin。
我打开了pgAdmin 4.app应用程序图标,这导致Safari 浏览器出现在前面,并带有一个显示通常 pgAdmin 用户界面的选项卡。好的。
我在 Safari 中关闭了那个标签。现在,当我打开pgAdmin 4.app图标(双击或选择File> Open)时,没有任何反应。
pgAdmin 是否应该在浏览器窗口而不是应用程序自己的窗口中启动?
? 如何再次重新打开 pgAdmin?
Postgres 是否有任何功能来支持老化的旧记录?
我想使用 Postgres 进行日志记录,作为一种队列,其中超过两周的记录(日志事件)会被自动删除。
在 Postgres 9.5 中,我很惊讶地看到在尝试 year 0001(没有 year zero 0000)时看到的结果。
-07:52:58?一些示例代码。请注意,我混合使用了TIMESTAMP WITH TIME ZONE和TIMESTAMP WITHOUT TIME ZONE,所以请仔细阅读。
SET TIME ZONE 'America/Los_Angeles' ;
SELECT (TIMESTAMP WITH TIME ZONE '2015-01-01 00:00:00.0',
TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0Z',
TIMESTAMP WITHOUT TIME ZONE '0001-01-01 00:00:00.0Z') ;
("2015-01-01 00:00:00-08","0001-12-31 16:07:02-07:52:58 BC","0001-01-01 00:00:00")
Run Code Online (Sandbox Code Playgroud)
我对第二个值感到惊讶:0001-12-31 16:07:02-07:52:58 BC. 我知道我们必须America/Los_Angeles在 UTC后八小时后退八小时,偏移量为-08:00. 但不是-08:00偏移量是-07:52:58. 为什么?
在 UTC 下输入数据时没有这样的问题。
SET TIME ZONE 'UTC' …Run Code Online (Sandbox Code Playgroud) 描述Postgres 10 新功能的页面提到了“触发器的转换表”。
触发器的转换表
此功能
AFTER STATEMENT通过适当地向查询公开旧行和新行,使触发器既实用又高效。在此功能之前,AFTER STATEMENT触发器无法直接访问这些,并且变通方法是拜占庭式的并且性能很差。现在可以将许多触发器逻辑编写为AFTER STATEMENT,从而避免需要在 FOR EACH ROW 触发器所需的每一行进行昂贵的上下文切换。
什么是过渡表?
Postgres 系统列记录在第 5 章。数据定义 > 5.4。系统列。
该页面提到oid值“是 32 位数量”。该页面对交易标识符也有同样的说法。所以我假设这意味着oid, tableoid, xmin, cmin, xmax, 和cmax都是 32 位整数。
但这离开了ctid系统列。
行版本在其表中的物理位置。请注意,尽管 ctid 可用于非常快速地定位行版本,但如果行的 ctid 被 VACUUM FULL 更新或移动,则该行的 ctid 将更改。因此 ctid 作为长期行标识符是无用的。OID,或者更好的是用户定义的序列号,应该用于标识逻辑行。
? ctid列的数据类型是什么?
具体来说,我对 Postgres 10.3 版本感兴趣,但如果它在过去的版本中发生了变化,那会很高兴知道。
Microsoft SQL Server 提供了NEWID生成新 GUID(UUID的 Microsoft 版本)值的命令,该值可用作主键值(在其uniqueidentifier数据类型中)。这些本质上不是顺序的,因此更新索引可能效率低下。
或者,MS SQL Server 提供该NEWSEQUENTIALID命令。引用他们的文档:
创建一个 GUID,该 GUID 大于自 Windows 启动以来此函数在指定计算机上先前生成的任何 GUID。重新启动 Windows 后,GUID 可以从较低的范围再次启动,但仍然是全局唯一的。当 GUID 列用作行标识符时,使用 NEWSEQUENTIALID 比使用 NEWID 函数更快。这是因为 NEWID 函数会导致随机活动并使用较少的缓存数据页。使用 NEWSEQUENTIALID 还有助于完全填充数据和索引页。
有没有办法在 Postgres 中获得更有效索引的 UUID?
如何使用 pgAdmin 应用程序编辑“postgresql.conf”文件?
在 Postgres 9.3.x 上使用 pgAdmin 1.18.1,当我选择File>Open postgresql.conf,会出现一个文件选择器对话框。而且,是的,我在 pgAdmin 中以超级用户“postgres”的身份连接。
我知道我已经在旧版本的 Postgres 中做到了这一点。
所述的PostgreSQL 9.4文档指出添加NOWAIT选项将SELECT FOR UPDATE当行不能被锁定时产生一个错误的装置:
要防止操作等待其他事务提交,请使用 NOWAIT 选项。使用 NOWAIT,如果无法立即锁定所选行,该语句将报告错误,而不是等待。
那究竟是什么错误?
由于这是一个可接受的条件,我希望我的 Java 代码检查此类预期错误,然后解决它。