すべてのプロダクト
Search
ドキュメントセンター

Tablestore:データの削除

最終更新日:Dec 28, 2024

Tablestore は、1 つのデータ行を削除できる DeleteRow 操作と、一度に複数のデータ行を削除できる BatchWriteRow 操作を提供します。

使用上の注意

削除したデータは復元できません。ご注意ください。

前提条件

1 つのデータ行を削除する

DeleteRow 操作を呼び出すことで、1 つのデータ行を削除できます。削除しようとする行が存在しない場合、テーブルは変更されません。

API 操作

"""
説明: この操作は、1 つのデータ行を削除します。
table_name: テーブルの名前。
primary_key: 行のプライマリキー。
condition: 操作を実行するために満たす必要がある条件。条件を指定すると、Tablestore は操作を実行する前に、指定された条件が満たされているかどうかを確認します。条件が満たされている場合にのみ、操作が実行されます。 condition パラメータは、tablestore.metadata.Condition クラスのインスタンスです。
行存在条件と列値に基づく条件がサポートされています。行存在条件を指定する場合、ビジネス要件に基づいて、condition パラメータを IGNORE、EXPECT_EXIST、または EXPECT_NOT_EXIST に設定できます。
Response: 操作によって消費されたキャパシティユニット (CU) の数と、return_row パラメータによって示される、返される行データ。
consumed: 操作によって消費された CU の数。 consumed パラメータは、tablestore.metadata.CapacityUnit クラスのインスタンスです。
return_row: 返される行データ。
例:
    primary_key = [('gid',1), ('uid',101)]
    condition = Condition('IGNORE')
    consumed, return_row = client.delete_row('myTable', primary_key, condition)
"""
def delete_row(self, table_name, primary_key, condition, return_type = None, transaction_id = None):

パラメータ

パラメータ

必須

説明

table_name

はい

データテーブルの名前。

primary_key

はい

行のプライマリキー。このパラメータの値は、各プライマリキー列の名前、タイプ、および値で構成されます。

重要

指定するプライマリキー列の数とタイプは、テーブル内のプライマリキー列の実際の数とタイプと同じである必要があります。

condition

はい

DeleteRow 操作を実行するために構成する条件。行存在条件または列値に基づく条件を構成できます。詳細については、条件付き更新 を参照してください。

return_type

いいえ

返されるデータのタイプ。

transaction_id

いいえ

ローカルトランザクションの ID。ローカルトランザクション機能を使用してデータを削除する場合は、このパラメータを構成する必要があります。

次のサンプルコードは、1 つのデータ行を削除する方法の例を示しています。

# データテーブルの名前を指定します。
table_name = '<TABLE_NAME>'
# 行のプライマリキーを構築します。
primary_key = [('gid', 1), ('uid', '101')]
row = Row(primary_key)
condition = Condition('IGNORE')
try:
    consumed, return_row = client.delete_row(table_name, row, condition)
    print('削除成功、消費書き込み CU: %s' % consumed.write)
# ほとんどの場合、クライアント例外はパラメータエラーまたはネットワーク例外が原因です。
except OTSClientError as e:
    print("行の削除に失敗しました。http_status:%d、error_message:%s" % (e.get_http_status(), e.get_error_message()))
# ほとんどの場合、サーバー例外はパラメータエラーまたはスロットリングエラーが原因です。
except OTSServiceError as e:
    print("行の削除に失敗しました。http_status:%d、error_code:%s、error_message:%s、request_id:%s" % (
    e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))

詳細なサンプルコードを表示するには、DeleteRow@GitHub にアクセスしてください。

複数のデータ行を同時に削除する

  1. 削除する行のプライマリキー情報を照会する方法を選択します。

  2. 行のプライマリキー情報に基づいて、BatchWriteRow 操作を呼び出して、複数のデータ行を同時に削除します。詳細については、複数のデータ行を同時に書き込む を参照してください。

FAQ

Python SDK V6.0.0 を使用して 1 つのデータ行を削除しようとすると、サンプルコードでエラーが発生した場合はどうすればよいですか?

次のいずれかの方法で問題を解決することをお勧めします。

  • Python SDK for Tablestore を最新バージョンにアップグレードします。

  • データの削除に使用するメソッドで指定されているパラメータを変更します。

    # データテーブルの名前を指定します。
    table_name = '<TABLE_NAME>'
    # 行のプライマリキーを構築します。
    primary_key = [('gid', 1), ('uid', '101')]
    condition = Condition('IGNORE')
    try:
        consumed, return_row = client.delete_row(table_name, primary_key, condition)
        print('削除成功、消費書き込み CU: %s' % consumed.write)
    # ほとんどの場合、クライアント例外はパラメータエラーまたはネットワーク例外が原因です。
    except OTSClientError as e:
        print("行の削除に失敗しました。http_status:%d、error_message:%s" % (e.get_http_status(), e.get_error_message()))
    # ほとんどの場合、サーバー例外はパラメータエラーまたはスロットリングエラーが原因です。
    except OTSServiceError as e:
        print("行の削除に失敗しました。http_status:%d、error_code:%s、error_message:%s、request_id:%s" % (
        e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))

関連情報

Time to Live (TTL) は、データの保存期間を指定します。データテーブルに TTL を構成して、期限切れのデータを自動的に削除できます。詳細については、データバージョンと TTL を参照してください。