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