所以我对 PostgreSQL 计时函数有一个有趣的问题。
这是情况。我们有一个预生产服务器 (Linux),用于存放我们正在开发的应用程序。我还在该数据库(Windows)的本地副本上做一些工作,以防服务器正在进行一些更重要的工作。我最近遇到了一个问题,我开始在本地数据库副本的日志表上发现主键违规。我认为这是不可能的,因为我使用 CLOCK_TIMESTAMP(当前系统时间)作为主键。此外,我在 pre-prod 服务器上进行了测试,它运行良好。所以我做了一些调查。我最终发现,如果我在服务器上运行“SELECT CLOCK_TIMESTAMP()”,它会将时间返回到微秒。如果我在本地主机上运行它,它只会下降到毫秒。因此,当在计时器到达下一毫秒之前发生多个更新时,就会出现问题,
所以我的问题是这个。为什么会发生这种情况,我该如何解决?这是我还没有找到的一些晦涩的设置吗?还是 Windows 与 Linux 的计时器分辨率不同?
编辑:CURRENT_TIMESTAMP、NOW() 和所有其他返回时间戳的内置函数也会发生同样的事情。
谢谢