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

单行数据操作

更新时间:2017-09-08 18:48:27

表格存储的 SDK 提供了 PutRow、GetRow、UpdateRow 和 DeleteRow 等单行操作的接口。

插入一行数据(PutRow)

插入数据到指定的行。

接口

  1. /**
  2. * 插入数据到指定的行,如果该行不存在,则新增一行;若该行存在,则覆盖原有行。
  3. */
  4. putRow(params, callback)

示例

  1. var TableStore = require('../index.js');
  2. var Long = TableStore.Long;
  3. var client = require('./client');
  4. var currentTimeStamp = Date.now();
  5. var params = {
  6. tableName: "sampleTable",
  7. condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
  8. primaryKey: [{ 'gid': Long.fromNumber(20013) }, { 'uid': Long.fromNumber(20013) }],
  9. attributeColumns: [
  10. { 'col1': '表格存储' },
  11. { 'col2': '2', 'timestamp': currentTimeStamp },
  12. { 'col3': 3.1 },
  13. { 'col4': -0.32 },
  14. { 'col5': Long.fromNumber(123456789) }
  15. ],
  16. returnContent: { returnType: TableStore.ReturnType.Primarykey }
  17. };
  18. client.putRow(params, function (err, data) {
  19. if (err) {
  20. console.log('error:', err);
  21. return;
  22. }
  23. console.log('success:', data);
  24. });
  • RowExistenceExpectation.IGNORE 表示不管此行是否已经存在,都会插入新数据,如果之前有会被覆盖。

  • RowExistenceExpectation.EXPECT_EXIST 表示只有此行存在时,才会插入新数据,此时,原有数据也会被覆盖。

  • RowExistenceExpectation.EXPECT_NOT_EXIST 表示只有此行不存在时,才会插入数据,否则不执行。

说明:详细代码可在 PutRow@GitHub 获取。

读取一行数据(GetRow)

根据给定的主键读取单行数据。

接口

  1. /**
  2. * 根据给定的主键读取单行数据。
  3. */
  4. getRow(params, callback)

示例

读取一行数据。

  1. var TableStore = require('../index.js');
  2. var Long = TableStore.Long;
  3. var client = require('./client');
  4. var params = {
  5. tableName: "sampleTable",
  6. primaryKey: [{ 'gid': Long.fromNumber(20004) }, { 'uid': Long.fromNumber(20004) }],
  7. maxVersions: 2
  8. };
  9. var condition = new TableStore.CompositeCondition(TableStore.LogicalOperator.AND);
  10. condition.addSubCondition(new TableStore.SingleColumnCondition('name', 'john', TableStore.ComparatorType.EQUAL));
  11. condition.addSubCondition(new TableStore.SingleColumnCondition('addr', 'china', TableStore.ComparatorType.EQUAL));
  12. params.columnFilter = condition;
  13. client.getRow(params, function (err, data) {
  14. if (err) {
  15. console.log('error:', err);
  16. return;
  17. }
  18. console.log('success:', data);
  19. });

说明:详细代码可在 GetRow@GitHub 获取。

更新一行数据(UpdateRow)

更新指定行的数据,如果该行不存在,则新增一行;若该行存在,则根据请求的内容在这一行中新增、修改或者删除指定列的值。

接口

  1. /**
  2. * 更新指定行的数据。如果该行不存在,则新增一行;若该行存在,则根据请求的内容在这一行中新增、修改或者删除指定列的值。
  3. */
  4. updateRow(params, callback)

示例

更新一行数据。

  1. var TableStore = require('../index.js');
  2. var Long = TableStore.Long;
  3. var client = require('./client');
  4. var params = {
  5. tableName: "sampleTable",
  6. condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
  7. primaryKey: [{ 'gid': Long.fromNumber(9) }, { 'uid': Long.fromNumber(90) }],
  8. updateOfAttributeColumns: [
  9. { 'PUT': [{ 'col4': Long.fromNumber(4) }, { 'col5': '5' }, { 'col6': Long.fromNumber(6) }] },
  10. { 'DELETE': [{ 'col1': Long.fromNumber(1496826473186) }] },
  11. { 'DELETE_ALL': ['col2'] }
  12. ]
  13. };
  14. client.updateRow(params,
  15. function (err, data) {
  16. if (err) {
  17. console.log('error:', err);
  18. return;
  19. }
  20. console.log('success:', data);
  21. });

说明:详细代码可在 UpdateRow@GitHub 获取。

删除一行数据(DeleteRow)

接口

  1. /**
  2. * 删除一行数据。
  3. */
  4. deleteRow(params, callback)

示例

删除一行数据。

  1. var TableStore = require('../index.js');
  2. var Long = TableStore.Long;
  3. var client = require('./client');
  4. var params = {
  5. tableName: "sampleTable",
  6. condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
  7. primaryKey: [{ 'gid': Long.fromNumber(8) }, { 'uid': Long.fromNumber(80) }]
  8. };
  9. client.deleteRow(params, function (err, data) {
  10. if (err) {
  11. console.log('error:', err);
  12. return;
  13. }
  14. console.log('success:', data);
  15. });

说明:详细代码可在 DeleteRow@GitHub 获取。

本文导读目录