表格存储提供了DeleteRow接口用于删除单行数据以及BatchWriteRow接口用于批量删除数据。
重要 删除表数据,将导致数据不可恢复,请谨慎操作。
前提条件
- 已初始化OTSClient。具体操作,请参见初始化。
- 已创建数据表并写入数据。
删除单行数据
调用DeleteRow接口删除一行数据。如果删除的行不存在,则不会发生任何变化。
参数
参数 | 说明 |
---|---|
tableName | 数据表名称。 |
primaryKey | 行的主键。 说明 设置的主键个数和类型必须和数据表的主键个数和类型一致。 |
condition | 支持使用条件更新,可以设置原行的存在性条件或者原行中某列的列值条件。更多信息,请参见条件更新。 |
示例
- 示例1
删除一行数据。
private static void deleteRow(SyncClient client, String pkValue) { //构造主键。 PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder(); primaryKeyBuilder.addPrimaryKeyColumn(PRIMARY_KEY_NAME, PrimaryKeyValue.fromString(pkValue)); PrimaryKey primaryKey = primaryKeyBuilder.build(); //设置数据表名称。 RowDeleteChange rowDeleteChange = new RowDeleteChange(TABLE_NAME, primaryKey); client.deleteRow(new DeleteRowRequest(rowDeleteChange)); }
- 示例2
设置删除条件。
private static void deleteRow(SyncClient client, String pkValue) { //构造主键。 PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder(); primaryKeyBuilder.addPrimaryKeyColumn(PRIMARY_KEY_NAME, PrimaryKeyValue.fromString(pkValue)); PrimaryKey primaryKey = primaryKeyBuilder.build(); //设置数据表名称。 RowDeleteChange rowDeleteChange = new RowDeleteChange(TABLE_NAME, primaryKey); //设置条件更新,期望原行存在且Col0列的值大于100时删除该行。 Condition condition = new Condition(RowExistenceExpectation.EXPECT_EXIST); condition.setColumnCondition(new SingleColumnValueCondition("Col0", SingleColumnValueCondition.CompareOperator.GREATER_THAN, ColumnValue.fromLong(100))); rowDeleteChange.setCondition(condition); client.deleteRow(new DeleteRowRequest(rowDeleteChange)); }