有人可以帮我找到与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(它主要用于乐观并发)
答案 0 :(得分:4)
请参阅PostgreSQL文档中的system columns部分。特别是,xmin
可能正是您所寻找的。 p>
但要小心使用任何系统列。根据定义,它们是特定于实现的,其中一些细节可能会随着未来版本而改变。
答案 1 :(得分:0)
如果我理解正确rowversion与serial相同?如果不是 - 你必须使用触发器制作自己的。
答案 2 :(得分:0)
您可以手动创建:
答案 3 :(得分:0)
遗漏的关键是每次更新行时都会更改行版本类型,即使最终结果是行也不会更改。
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
我发现的唯一选择是创建一个更新触发器。