表格存储提供了DeleteRow接口用于删除单行数据以及BatchWriteRow接口用于批量删除数据。
重要 删除表数据,将导致数据不可恢复,请谨慎操作。
前提条件
- 已初始化Client,详情请参见初始化。
- 已创建数据表并写入数据。
删除单行数据
调用DeleteRow接口删除一行数据。如果删除的行不存在,则不会发生任何变化。
接口
/**
* 删除一行数据。
* @api
* @param [] $request 请求参数。
* @return [] 请求返回。
* @throws OTSClientException 当参数检查出错或服务端返回校验出错时抛出异常。
* @throws OTSServerException 当OTS服务端返回错误时抛出异常。
*/
public function deleteRow(array $request);
请求参数
参数 | 说明 |
---|---|
table_name | 数据表名称。 |
condition | 使用条件更新,可以设置原行的存在性条件或者原行中某列的列值条件。更多信息,请参见条件更新。 |
primary_key | 行的主键。 说明 设置的主键个数和类型必须和数据表的主键个数和类型一致。 |
return_content | 表示返回类型。 return_type:目前只需要设置为 |
请求格式
$result = $client->deleteRow([
'table_name' => '<string>', //设置数据表名称。
'condition' => [
'row_existence' => <RowExistence>,
'column_condition' => <ColumnCondition>
],
'primary_key' => [ //设置主键。
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
],
'return_content' => [
'return_type' => <ReturnType>
]
]);
响应参数
参数 | 说明 |
---|---|
consumed | 本次操作消耗服务能力单元的值。 capacity_unit表示使用的读写能力单元。
|
primary_key | 主键的值,和请求时一致。 说明 当在请求中设置return_type为ReturnTypeConst::CONST_PK时,会返回完整的主键,主要用于主键列自增。 |
attribute_columns | 属性列的值,和请求时一致,目前为空。 |
结果格式
[
'consumed' => [
'capacity_unit' => [
'read' => <integer>,
'write' => <integer>
]
],
'primary_key' => [
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
],
'attribute_columns' => []
]
示例
- 示例1
删除一行数据。
$request = [ 'table_name' => 'MyTable', 'condition' => RowExistenceExpectationConst::CONST_IGNORE, 'primary_key' => [ //设置主键。 ['PK0', 123], ['PK1', 'abc'] ], 'return_content' => [ 'return_type' => ReturnTypeConst::CONST_PK //使用主键列自增时,可以设置return_type返回主键。 ] ]; $response = $otsClient->deleteRow($request);
- 示例2
设置删除条件。
$request = [ 'table_name' => 'MyTable', 'condition' => [ 'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST, //期望原行存在。 'column_filter' => [ //当Col0列的值大于100时删除数据。 'column_name' => 'Col0', 'value' => 100, 'comparator' => ComparatorTypeConst::CONST_GREATER_THAN ], ], 'primary_key' => [ //设置主键。 ['PK0', 123], ['PK1', 'abc'] ] ]; $response = $otsClient->deleteRow ($request);