1
我主要是从Sql Server的背景下,并且在使MySql与Microsoft Sync Framework一起工作(即它不适合快照)之后,我不得不查看Postgres并尝试使用Sync Framework进行工作。PostgreSQL等价于Sql服务器@@ DBTS
需要的触发器包括对函数“@@ DBTS”的调用,但是我无法在Postgres中为此找到等效项。
从Microsoft文档这一点,说:
@@DBTS returns the current database's last-used timestamp value.
A new timestamp value is generated when a row with a timestamp
column is inserted or updated.
在MySQL中是以下几点:
USE INFORMATION_SCHEMA;
SELECT MAX(UPDATE_TIME) FROM TABLES WHERE UPDATE_TIME < NOW();
谁能告诉我这是什么将是Postgres的?
IIRC,时间戳在Microsoft有不同的含义。在Postgres中,它们只是普通的“日期+时间”数据类型。您可能需要的序列类型(与rowversioning相关)确实存在,但我认为它们在应用程序级别上并不特别有用。你到底需要他们什么?你想要子交易时间粒度? – wildplasser 2012-03-20 11:04:35
这是所有的同步框架,我已经使用sql服务器配置类正确提供所有表/触发器/存储过程等,我现在试图在Postgres数据库中模仿(因为没有配置类)。它将一个插入到跟踪表中,将“@@ DBTS + 1”放入“local_create_peer_timestamp”列中,并将“GETDATE()”放入“last_change_datetime”列中,以便区分它们,我不想打破他们这样做的任何原因。此外,同步框架中的任何代码都会期望(我假设)数据是以这种格式存在的。 – eyeballpaul 2012-03-20 11:12:22
PostgreSQL在上次修改表时不会跟踪。因此,没有等同于SQL Server的'DBTS',也没有MySQL的UPDATE_TIME' – 2012-03-20 11:22:11