Tablestore提供了DeleteRow介面用於刪除單行資料以及BatchWriteRow介面用於大量刪除資料。
说明 組成表的基本單位為行,行由主鍵和屬性群組成。其中主鍵是必須的,且每一行的主鍵列的名稱和類型相同;屬性不是必須的,且每一行的屬性可以不同。更多資訊,請參見模型介紹。
使用
重要 刪除表資料,將導致資料不可恢複,請謹慎操作。
您可以使用如下語言的SDK刪除資料。
刪除單行資料
調用DeleteRow介面刪除一行資料。如果刪除的行不存在,則不會發生任何變化。
CU消耗說明
DeleteRow操作消耗的讀CU和寫CU說明如下:
- 消耗的寫CU為刪除的行主鍵資料大小除以4 KB向上取整。
- 如果指定條件檢查不為IGNORE,則消耗行主鍵資料大小除以4 KB向上取整的讀CU。
- 如果操作不滿足指定的行存在性檢查條件,則操作失敗並消耗1單位寫CU。
參數
參數 | 說明 |
---|---|
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)); }