2017-07-25 54 views
2

我一直在努力删除Java中的Azure表中的所有行。我可以不查询它吗? 在此先感谢如何删除Azure表中的所有实体?

+0

删除并重新创建? – 4c74356b41

+0

没有..只删除所有的行。 –

+0

目前,我们无法删除条目,而无需从Azure表存储中指定PK和RK。我知道你为什么不想删除表格。如果表被删除,我们需要重新创建表的SAS并分派给所有的客户端。如果您知道计算PK/RK的模式,则可以使用算法生成PK/RK对,并使用[TableBatchOperation](https://docs.microsoft.com/zh-cn/dotnet/api/)删除行microsoft.windowsazure.storage.table.tablebatchoperation?redirectedfrom = MSDN&view = azurestorage-8.1.3),它允许我们一次执行多个操作。 – Amor

回答

2

如果我检索所有的数据,我可以执行删除查询吗?

如果你只是想删除数据,你只需要检索PK和RK。在检索到PK和RK的所有数据之后,可以逐个执行对实体的删除查询。

对于复杂的删除查询,例如,当前不支持下面的查询。

delete from tablename where PK = '' 

我建议您在Azure反馈网站上提交您的想法用于功能请求。

https://feedback.azure.com/forums/217298-storage

+0

谢谢你的回复。我尝试使用 检索所有实体。Iterable entities = cloudTable.execute(new TableQuery ()); 但它没有奏效。错误是 - 参数不能为空或空字符串 –

+0

要检索所有实体,请使用以下代码。 Iterable entities = cloudTable.execute(TableQuery.from(DynamicTableEntity.class)); – Amor

+0

它的工作..谢谢你:) –

1

如果你不想查询表,你可以做的是删除表并重新创建它。

+0

我试过这个,它很成功。但删除表格可能会影响同时插入数据。所以我检索了所有实体并执行了删除批处理操作。 –