全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
表格存储

更新数据

更新时间:2017-10-27 09:25:29

SQL

关系型数据库中,可以使用UPDATE语句对表中的一行或者多行记录进行修改,如下所示:

  1. UPDATE UserHistory
  2. SET behavior_type = 'collect'
  3. WHERE user_id = '10100' AND time_stamp = 1479265526 AND behavior_count > 4.0;

表格存储

使用表格存储时,可以使用 UpdateRow 接口更新一行数据,如下所示:

  1. // 设置主键
  2. PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
  3. primaryKeyBuilder.addPrimaryKeyColumn("user_id", PrimaryKeyValue.fromString("10100"));
  4. primaryKeyBuilder.addPrimaryKeyColumn("time_stamp", PrimaryKeyValue.fromLong(1479265526));
  5. PrimaryKey primaryKey = primaryKeyBuilder.build();
  6. // 设置更新条件:期望原行存在, 且behavior_count的值大于4.0时更新
  7. Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST);
  8. condition.setColumnCondition(new SingleColumnValueCondition("behavior_count", SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromDouble(4.0)));
  9. // 设置属性列的值
  10. RowUpdateChange rowUpdateChange = new RowUpdateChange(TABLE_NAME, primaryKey);
  11. rowUpdateChange.put(new Column("behavior_type", ColumnValue.fromString("collect")));
  12. rowUpdateChange.setCondition(condition);
  13. // 插入该行数据
  14. client.updateRow(new UpdateRowRequest(rowUpdateChange));

注意:

  • UpdateRow 需要指定表名 TABLE_NAME 和全部的主键 primaryKey,被更新的列可以存在或者不存在。
  • UpdateRow 只会修改这一行中需要修改的列,PutRow 则会使用新的数据覆盖原来整行的数据。
  • 更新可以设置两种检查条件:行存在检查条件检查
  • SQL 中 UPDATE 会对满足 WHERE 的所有记录进行更新。表格存储的 UpdateRow 只更新指定主键的一行数据,条件检查也只针对本行的主键列或者属性列做检查。
  • 更新多条记录推荐使用 BatchWriteRow 接口,可以大大提高数据的写入速度。
本文导读目录