删除数据项

操作步骤

1.通过 tableName 实例化一个 Table 对象,操作该对象即相当于操作对应的数据表

Table product = new Table("product");

2.获取指定 recordID 的 Record

Record record = product.fetchWithoutData(recordID)

2.执行删除操作

record.delete()

示例

请求示例

  1. // 删除 tableName 为 'product' 的数据表中 recordID 为 59897882ff650c0477f00485 的数据项
  2. Table product = new Table("product");
  3. Record record = product.fetchWithoutData("59897882ff650c0477f00485");
  4. // 同步版本
  5. try {
  6. record.delete();
  7. // 操作成功
  8. } catch (Exception e) {
  9. // 操作失败
  10. }
  11. // 异步版本
  12. record.deleteInBackground(new Callback<Record>() {
  13. @Override
  14. public void onSuccess(@Nullable Record record) {
  15. // 删除成功
  16. }
  17. @Override
  18. public void onFailure(Exception e) {
  19. // 删除失败
  20. }
  21. });

异常请参考异常

常见 HttpException.code :

code可能的原因
404数据行不存在
403没有权限删除数据

批量删除数据项

其中:

请求示例

  1. Table product = new Table("product");
  2. Query query = new Query().offset(0).limit(10);
  3. Where where = new Where();
  4. // 设置查询条件(比较、字符串包含、组合等)
  5. // ...
  6. query.put(where);
  7. // 同步版本
  8. try {
  9. BatchResult result = product.batchDelete(query);
  10. // 操作成功
  11. } catch (Exception e) {
  12. // 操作失败
  13. }
  14. // 异步回调版本
  15. product.batchDeleteInBackground(null, new Callback<BatchResult>() {
  16. @Override
  17. public void onSuccess(@Nullable BatchResult batchResult) {
  18. // 批量删除成功,这里拿到操作结果
  19. }
  20. @Override
  21. public void onFailure(Exception e) {
  22. // 批量删除失败了
  23. }
  24. });

返回示例

BatchResult 结构如下:

  1. {
  2. "succeed": 8, // 成功删除记录数
  3. "total_count": 10, // where 匹配的记录数,包括无权限操作记录
  4. "offset": 0,
  5. "limit": 10,
  6. "next": null // 下一次删除 url,若为 null 则表示全部删除完毕
  7. }

异常请参考异常

常见错误 HttpException.code :

code可能的原因
404数据行不存在
403没有权限删除数据

批量删除时不触发触发器

  1. Table table = new Table("my_horses");
  2. // 知晓云后台设置的触发器将不会被触发
  3. Query query = new Query();
  4. query.enableTrigger(false);
  5. table.batchDeleteInBackground(query, new BaseCallback<BatchResult>() {
  6. @Override
  7. public void onSuccess(BatchResult batchResult) {
  8. // success
  9. }
  10. @Override
  11. public void onFailure(Throwable e) {
  12. // error
  13. }
  14. });