有人可以帮我找到与PostgreSQL等效的Timestamp / Rowversion(SQL Server)吗?
我在Mono上使用NHibernate(UNIX)。
我认为Timestamp(PostgreSQL)相当于Datetime(SQL Server) - 它不是我想要的。
编辑1:对于那些不知道SQL Server中什么是Timestamp / Rowversion的人:http://msdn.microsoft.com/en-us/library/ms182776.aspx(它主要用于乐观并发)
如果我理解正确rowversion与serial相同?如果不是 - 你必须使用触发器制作自己的。
请参阅PostgreSQL文档中的system columns部分。特别是,xmin
可能是你正在寻找的。
但要小心使用任何系统列。根据定义,它们是特定于实现的,其中一些细节可能会随着未来版本而变化。
您可以手动创建它:
错过的关键是每次对行进行更新时都会更改rowversion类型,即使最终结果是行,也不会更改行。
CREATE TABLE MyTest (myKey int PRIMARY KEY
,myValue int, RV rowversion);
GO
INSERT INTO MyTest (myKey, myValue) VALUES (1, 0);
GO
INSERT INTO MyTest (myKey, myValue) VALUES (2, 0);
GO
select * from MyTest
Go
update MyTest set myValue = 0
go
/* row version will have changed */
select * from MyTest
Go
我找到的唯一选择是创建更新触发器。