閱讀668 返回首頁    go 英雄聯盟


更新數據__從 SQL 到 NoSQL_快速入門_表格存儲-阿裏雲

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. rowUpdateChange.setCondition(condition);
  10. // 設置屬性列的值
  11. RowUpdateChange rowUpdateChange = new RowUpdateChange(TABLE_NAME, primaryKey);
  12. rowUpdateChange.put(new Column("behavior_type", ColumnValue.fromSting("collect")));
  13. // 插入該行數據
  14. client.updateRow(new UpdateRowRequest(rowUpdateChange));

使用 UpdateRow 接口時,請注意如下關鍵事項:

  • DeleteRow 需要指定表名 TABLE_NAME 和全部的主鍵 primaryKey,被更新的列可以存在或者不存在。

  • UpdateRow 隻會修改這一行中需要修改的列,PutRow 則會使用新的數據覆蓋原來整行的數據。

  • 更新可以設置兩種檢查條件:行存在檢查條件檢查

  • SQL中 UPDATE 會對滿足 WHERE 的所有記錄進行更新,表格存儲的 UpdateRow 隻更新指定主鍵的一行數據,條件檢查也隻針對本行的主鍵列或者屬性列做檢查。

  • 可使用 BatchWriteRow 接口更新多條記錄,以大大提高數據的寫入速度。

最後更新:2016-11-23 16:04:20

  上一篇:go 檢索數據__從 SQL 到 NoSQL_快速入門_表格存儲-阿裏雲
  下一篇:go 刪除數據__從 SQL 到 NoSQL_快速入門_表格存儲-阿裏雲