刪除數(shù)據(jù)
表格存儲(chǔ)提供了DeleteRow接口用于刪除單行數(shù)據(jù)以及BatchWriteRow接口用于批量刪除數(shù)據(jù)。
注意事項(xiàng)
刪除表數(shù)據(jù),將導(dǎo)致數(shù)據(jù)不可恢復(fù),請(qǐng)謹(jǐn)慎操作。
前提條件
- 已初始化Client,詳情請(qǐng)參見初始化OTSClient。
- 已創(chuàng)建數(shù)據(jù)表并寫入數(shù)據(jù)。
刪除單行數(shù)據(jù)
調(diào)用DeleteRow接口刪除一行數(shù)據(jù)。如果刪除的行不存在,則不會(huì)發(fā)生任何變化。
接口
/**
* 刪除一行數(shù)據(jù)。
* @api
* @param [] $request 請(qǐng)求參數(shù)。
* @return [] 請(qǐng)求返回。
* @throws OTSClientException 當(dāng)參數(shù)檢查出錯(cuò)或服務(wù)端返回校驗(yàn)出錯(cuò)時(shí)拋出異常。
* @throws OTSServerException 當(dāng)OTS服務(wù)端返回錯(cuò)誤時(shí)拋出異常。
*/
public function deleteRow(array $request);
參數(shù)
請(qǐng)求信息
請(qǐng)求參數(shù)
參數(shù) | 說明 |
table_name | 數(shù)據(jù)表名稱。 |
condition | 使用條件更新,可以設(shè)置原行的存在性條件或者原行中某列的列值條件。更多信息,請(qǐng)參見條件更新。 |
primary_key | 行的主鍵。 說明 設(shè)置的主鍵個(gè)數(shù)和類型必須和數(shù)據(jù)表的主鍵個(gè)數(shù)和類型一致。 |
return_content | 表示返回類型。 return_type:目前只需要設(shè)置為 |
請(qǐng)求格式
$result = $client->deleteRow([
'table_name' => '<string>', //設(shè)置數(shù)據(jù)表名稱。
'condition' => [
'row_existence' => <RowExistence>,
'column_condition' => <ColumnCondition>
],
'primary_key' => [ //設(shè)置主鍵。
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
],
'return_content' => [
'return_type' => <ReturnType>
]
]);
響應(yīng)信息
響應(yīng)參數(shù)
參數(shù) | 說明 |
consumed | 本次操作消耗服務(wù)能力單元的值。 capacity_unit表示使用的讀寫能力單元。
|
primary_key | 主鍵的值,和請(qǐng)求時(shí)一致。 說明 當(dāng)在請(qǐng)求中設(shè)置return_type為ReturnTypeConst::CONST_PK時(shí),會(huì)返回完整的主鍵,主要用于主鍵列自增。 |
attribute_columns | 屬性列的值,和請(qǐng)求時(shí)一致,目前為空。 |
結(jié)果格式
[
'consumed' => [
'capacity_unit' => [
'read' => <integer>,
'write' => <integer>
]
],
'primary_key' => [
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>],
['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
],
'attribute_columns' => []
]
示例
刪除一行數(shù)據(jù)
以下示例用于刪除數(shù)據(jù)表中的指定行數(shù)據(jù)。
$request = [
'table_name' => 'MyTable',
'condition' => RowExistenceExpectationConst::CONST_IGNORE,
'primary_key' => [ //設(shè)置主鍵。
['PK0', 123],
['PK1', 'abc']
],
'return_content' => [
'return_type' => ReturnTypeConst::CONST_PK //使用主鍵列自增時(shí),可以設(shè)置return_type返回主鍵。
]
];
$response = $otsClient->deleteRow($request);
刪除數(shù)據(jù)時(shí)使用條件
以下示例用于當(dāng)原行存在且Col0列的值大于100時(shí)刪除數(shù)據(jù)表中的指定行。
$request = [
'table_name' => 'MyTable',
'condition' => [
'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST, //期望原行存在。
'column_filter' => [ //當(dāng)Col0列的值大于100時(shí)刪除數(shù)據(jù)。
'column_name' => 'Col0',
'value' => 100,
'comparator' => ComparatorTypeConst::CONST_GREATER_THAN
],
],
'primary_key' => [ //設(shè)置主鍵。
['PK0', 123],
['PK1', 'abc']
]
];
$response = $otsClient->deleteRow ($request);
批量刪除數(shù)據(jù)
根據(jù)實(shí)際選擇合適的方式查詢待刪除數(shù)據(jù)的主鍵信息。
如果要?jiǎng)h除指定主鍵范圍內(nèi)的數(shù)據(jù),請(qǐng)調(diào)用GetRange接口,查詢指定主鍵范圍內(nèi)的數(shù)據(jù),并獲取待刪除數(shù)據(jù)的主鍵信息。具體操作,請(qǐng)參見范圍讀取數(shù)據(jù)。
如果要?jiǎng)h除滿足指定條件的數(shù)據(jù),請(qǐng)創(chuàng)建多元索引后,使用多元索引查詢滿足指定條件的數(shù)據(jù),并獲取待刪除數(shù)據(jù)的主鍵信息。具體操作,請(qǐng)參見創(chuàng)建多元索引和通過SDK使用多元索引。
調(diào)用BatchWriteRow接口,根據(jù)主鍵信息批量刪除數(shù)據(jù)。更多信息,請(qǐng)參見批量寫入數(shù)據(jù)。
相關(guān)文檔
如果要?jiǎng)h除指定天數(shù)之前的數(shù)據(jù),您可以通過為數(shù)據(jù)表配置數(shù)據(jù)生命周期的方式自動(dòng)清理過期數(shù)據(jù)。具體操作,請(qǐng)參見數(shù)據(jù)版本和生命周期。