Tablestore は、単一のデータ行を削除できる DeleteRow 操作と、複数のデータ行を同時に削除できる BatchWriteRow 操作を提供します。
使用上の注意
削除されたデータは復元できません。ご注意ください。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、「OTSClient インスタンスを初期化する」をご参照ください。
データテーブルが作成され、データがデータテーブルに書き込まれます。詳細については、「データテーブルを作成する」および「データを書き込む」をご参照ください。
単一のデータ行を削除する
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 操作を呼び出してデータをクエリし、データのプライマリキー情報を取得します。詳細については、「プライマリキー値が特定の範囲内にあるデータを読み取る」をご参照ください。
検索インデックスが作成されたデータテーブルから特定の条件を満たすデータを削除するには、検索インデックスを使用してデータをクエリし、データのプライマリキー情報を取得します。詳細については、「基本的なクエリ」をご参照ください。
データテーブルからすべてのデータを削除するには、データテーブルを削除し、同じ構成のデータテーブルを作成することをお勧めします。
また、GetRange 操作を呼び出し、開始プライマリキーを INF_MIN に、終了プライマリキーを INF_MAX に設定して、テーブル内のすべてのデータをスキャンすることもできます。この方法では、テーブル内のすべてのデータのプライマリキー情報を取得できます。ただし、これには大量の計算リソースが消費されます。ご注意ください。
行のプライマリキー情報に基づいて、BatchWriteRow 操作を呼び出して、複数のデータ行を同時に削除します。詳細については、「複数のデータ行を同時に書き込む」をご参照ください。
関連情報
Time to live(TTL)は、データの保持期間を指定します。データテーブルの TTL を構成して、期限切れのデータを自動的に削除できます。詳細については、「データバージョンと TTL」をご参照ください。