Tablestore は、1 行のデータを削除できる DeleteRow 操作と、一度に複数の行のデータを削除できる BatchWriteRow 操作を提供します。
使用上の注意
削除されたデータは復元できません。注意して操作してください。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスの初期化を参照してください。
データテーブルが作成され、データがデータテーブルに書き込まれます。詳細については、データテーブルの作成とデータの書き込みを参照してください。
1 行のデータの削除
DeleteRow 操作を呼び出して、単一のデータ行を削除できます。削除する行が存在しない場合、テーブルは変更されません。
API 操作
/// <summary>
/// 指定されたテーブル名とプライマリキーに基づいてデータの行を削除します。
/// </summary>
/// <param name="request">リクエストインスタンス</param>
/// <returns>レスポンスインスタンス</returns>
public DeleteRowResponse DeleteRow(DeleteRowRequest request);
/// <summary>
/// DeleteRow の非同期モード。
/// </summary>
public Task<DeleteRowResponse> DeleteRowAsync(DeleteRowRequest request);
パラメーター
パラメーター | 説明 |
tableName | データテーブルの名前。 |
primaryKey | 行のプライマリキー。 説明 指定するプライマリキー列の数と型は、テーブル内のプライマリキー列の実際の数と型と同じである必要があります。 |
condition | 操作を実行するために満たす必要がある条件。行の存在条件、または列の値に基づく条件を指定できます。詳細については、条件付き更新の実行を参照してください。 |
例
次のサンプルコードは、テーブルから特定のデータ行を削除する方法の例を示しています。
// 削除する行のプライマリキー列の値を 0 と "abc" に設定します。
var primaryKey = new PrimaryKey();
primaryKey.Add("pk0", new ColumnValue(0));
primaryKey.Add("pk1", new ColumnValue("abc"));
try
{
// リクエストを構築します。RowExistenceExpectation.EXPECT_EXIST は、指定された行が存在する場合にのみ削除操作が実行されることを示します。
var deleteRowRequest = new DeleteRowRequest("SampleTable", new Condition(RowExistenceExpectation.EXPECT_EXIST), primaryKey);
// DeleteRow 操作を呼び出してデータを削除します。
otsClient.DeleteRow(deleteRowRequest);
// 例外が返されない場合、操作は成功です。
Console.WriteLine("テーブルの削除に成功しました。");
}
catch (Exception ex)
{
// 例外が返された場合、操作は失敗です。例外を処理します。
Console.WriteLine("テーブルの削除に失敗しました。例外: {0}", ex.Message);
}
複数のデータ行を一括削除する
削除するデータのプライマリキー情報を照会する方法を選択します。
プライマリキー値が指定された範囲内にあるデータを削除するには、GetRange 操作を呼び出してデータを照会し、データのプライマリキー情報を取得します。詳細については、プライマリキー値が特定の範囲内にあるデータの読み取りを参照してください。
指定された条件を満たすデータを削除するには、検索インデックスを使用してデータを照会します。次に、データのプライマリキー情報を取得します。詳細については、検索インデックスの作成とTablestore SDK の使用を参照してください。
行のプライマリキー情報に基づいて、BatchWriteRow 操作を呼び出して、複数のデータ行を同時に削除します。詳細については、複数のデータ行を同時に書き込むを参照してください。
参照
Time to live (TTL) は、データの保存期間を指定します。データテーブルに TTL を設定して、期限切れのデータを自動的に削除できます。詳細については、データバージョンと TTL を参照してください。