开发者社区> 问答> 正文

如何更新数据



SQL


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

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


表格存储


使用表格存储时,可以使用 UpdateRow 接口更新一行数据,如下所示: // 设置主键
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("user_id", PrimaryKeyValue.fromString("10100"));
    primaryKeyBuilder.addPrimaryKeyColumn("time_stamp", PrimaryKeyValue.fromLong(1479265526));
    PrimaryKey primaryKey = primaryKeyBuilder.build();
    // 设置更新条件:期望原行存在, 且behavior_count的值大于4.0时更新
    Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST);
    condition.setColumnCondition(new SingleColumnValueCondition("behavior_count", SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromDouble(4.0)));
    rowUpdateChange.setCondition(condition);
    // 设置属性列的值
    RowUpdateChange rowUpdateChange = new RowUpdateChange(TABLE_NAME, primaryKey);
    rowUpdateChange.put(new Column("behavior_type", ColumnValue.fromSting("collect")));
    // 插入该行数据
    client.updateRow(new UpdateRowRequest(rowUpdateChange));


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

展开
收起
云栖大讲堂 2017-10-24 17:23:54 1838 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载