我可以在Azure表插入操作上获取竞争条件吗?

我可以在Azure表插入操作上获取竞争条件吗?,azure,concurrency,azure-table-storage,azure-tablequery,Azure,Concurrency,Azure Table Storage,Azure Tablequery,我有一个函数应用程序,可以将一些数据插入Azure表。我是否可能获得竞争条件并最终插入两次具有相同ID的数据,或者Azure是否在某个表级锁下进行插入操作,以确保我不能插入相同的内容两次?重复的字段将是分区键和行键 在我的例子中,我需要插入行是否不存在,并读取行是否存在。在我的函数应用程序中,我尝试在写入之前读取,但有可能另一个实例同时使用相同的键执行写入操作。若插入被序列化,那个么当Insert命令失败时,我可以返回到读取 有没有可能,我会得到一个比赛条件,并最终插入 具有相同ID的数据两次,

我有一个函数应用程序,可以将一些数据插入Azure表。我是否可能获得竞争条件并最终插入两次具有相同ID的数据,或者Azure是否在某个表级锁下进行插入操作,以确保我不能插入相同的内容两次?重复的字段将是分区键和行键

在我的例子中,我需要插入行是否不存在,并读取行是否存在。在我的函数应用程序中,我尝试在写入之前读取,但有可能另一个实例同时使用相同的键执行写入操作。若插入被序列化,那个么当Insert命令失败时,我可以返回到读取

有没有可能,我会得到一个比赛条件,并最终插入 具有相同ID的数据两次,或者Azure是否执行插入操作 在某个表级锁下,这将确保我不能插入相同的 两次

当然可以获得竞争条件,但是不可能有重复的条目,即对于一个PartitionKey/RowKey组合,表中只能有一个实体

在我的例子中,如果行不存在,我需要插入,然后读取 如果存在的话


假设您使用的是.NETSDK,实现这一点的一种方法是使用插入实体并捕获异常。如果实体已经存在,则会出现
冲突(409)
错误。当您出现此错误时,您可以实现读取实体的逻辑。

如果成功,那么现在就是表中的行:)如果我可以保证每个插入都是原子事务,那么这就是计划:)您能告诉我是否有任何官方文档说明上述内容吗?或者如果你在Azure团队工作,那会很有帮助的哈哈