Table Store提供了DeleteRow介面用於刪除單行資料以及BatchWriteRow介面用於大量刪除資料。
注意事項
刪除表資料,將導致資料不可恢複,請謹慎操作。
前提條件
已初始化Client。具體操作,請參見初始化OTSClient。
已建立資料表並寫入資料。具體操作,請參見建立資料表。
刪除單行資料
調用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' => []
]
樣本
刪除一行資料
以下樣本用於刪除資料表中的指定行資料。
$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);
刪除資料時使用條件
以下樣本用於當原行存在且Col0列的值大於100時刪除資料表中的指定行。
$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);
大量刪除資料
根據實際選擇合適的方式查詢待刪除資料的主鍵資訊。
如果要刪除指定主鍵範圍內的資料,請調用GetRange介面,查詢指定主鍵範圍內的資料,並擷取待刪除資料的主鍵資訊。具體操作,請參見範圍讀取資料。
如果要刪除滿足指定條件的資料,請建立多元索引後,使用多元索引查詢滿足指定條件的資料,並擷取待刪除資料的主鍵資訊。具體操作,請參見建立多元索引和通過SDK使用多元索引。
調用BatchWriteRow介面,根據主鍵資訊大量刪除資料。更多資訊,請參見批量寫入資料。
相關文檔
如果要刪除指定天數之前的資料,您可以通過為資料表配置資料生命週期的方式自動清理到期資料。具體操作,請參見資料版本和生命週期。