在天蓝色表中存储。有没有办法在更新或插入后获取新的时间戳值。我正在编写一个3阶段提交协议来获取表存储以支持分布式事务,并且它将多次写入同一个实体。所以操作顺序是这样的,Read Entity
,Write Entity (Lock Item)
,Write Entity (Commit new values)
。我希望在锁定项目操作之后获得新的时间戳,这样在执行提交新值操作之前,我不必再次不必要地读取该项目。那么是否有人知道如何在savechanges操作之后有效地获取新的时间戳值?插入/更新后获取时间戳
回答
我不认为你需要做任何特别/额外的事情。当你读你的实体时,你会得到一个Etag。当您保存该实体(设置someLock = true)时,只有在没有其他人自您读取之后更新实体时,保存才会成功。因此,你知道你有锁。然后你可以随心所欲地做第二次写作。
我不相信这是可能的。我会用你自己的时间戳和/或guid来标记条目。
如果您愿意回到Update REST API call,它会返回生成响应的时间。它可能不会与记录上的时间戳完全一样,但我相信它会接近。
如果不是确切的,那么由于乐观并发会导致第二次更新失败,是否也可以绕过乐观并发?这也将起作用,因为当我获得锁定时,我可以保证没有其他进程会尝试更新实体。 – RyanFishman 2011-12-26 20:22:30
好吧,为了忽略表存储的乐观并发性,而不是像这样更新一个值 – RyanFishman 2011-12-26 22:14:56
您可能需要破解Azure表。驱动程序
例如,在Azure python lib(TableStorage)中,Timestamp简单地被跳过。
# exclude the Timestamp since it is auto added by azure when
# inserting entity. We don't want this to mix with real properties
if name in ['Timestamp']:
continue
- 1. 休眠获取最后更新时间戳
- 2. 如何在更新后立即获取时间戳值?
- 3. 如何获取今天插入或更新的行,不带时间戳列
- 4. KnexJS:如何使用当前时间戳插入/更新时间戳字段?
- 5. 插入触发后的Firebird - 插入时间戳插入行
- 6. 时间戳更新
- 7. 更新时间戳
- 8. 从Cassandra获取最后的时间戳
- 9. SimpleDB时间戳插入
- 10. 插入时间戳在python
- 11. 更新时间戳时Sqliteexception?
- 12. 获取最新的时间戳mysql
- 13. 如何使插入和更新蒙哥记录时间戳差?
- 14. 插入,更新时间戳触发两列主键
- 15. 甲骨文时间戳更新/插入一年解释
- 16. H2时间戳 - 始终插入(或获取)当前日期
- 17. 更新时间戳列
- 18. 更新时间戳列
- 19. Nhibernate更新时间戳
- 20. 更新时间戳列
- 21. 已更新如何在JavaScript中获取UTC时间戳?
- 22. 如何使用psycopg2获取数据库更新的时间戳
- 23. 获取最新版本更改时间戳SQL Server
- 24. 获取自facebook上的时间戳以来的更新数
- 25. 获取未来时间戳
- 26. Cumulocity API获取时间戳
- 27. Android获取时间更新
- 28. MySql时间戳 - 更新所有行后的不同时间
- 29. 不能插入unix时间戳到表的时间戳字段
- 30. 在Oracle时间戳列插入时间戳
所有我想做的事情两个写一个接一个,第一次锁定,然后下一次提交。我想在没有任何阅读的情况下做到这一点。额外的字段不会帮助我防止额外的读取。有什么建议么? – RyanFishman 2011-12-26 20:00:41
对不起,我以为你试图通过做时间戳比较来防止他人写同一个实体。你能详细说明为什么你需要知道插入后的时间戳吗? – Igorek 2011-12-27 00:52:55
我为Azure表存储实现了我自己的分布式事务方法,因为表存储本身不支持它(我不知道为什么它不?)。我正在对同一实体执行2次写入操作。第一次写入是一个锁,我基本上将一些属性调用IsLocked设置为true。如果成功成功,那么所有其他角色将知道不要写入该元素,因为其他角色当前有锁定。一旦我获得锁定并锁定了分布式事务中涉及的所有必需行,我就可以继续对实体进行更改。 – RyanFishman 2011-12-27 01:00:11