Tablestore は、単一行のデータを削除できる DeleteRow 操作と、複数行のデータを同時に削除できる BatchWriteRow 操作を提供します。
使用上の注意
削除したデータは復元できません。ご注意ください。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、「OTSClient インスタンスの初期化」をご参照ください。
データテーブルが作成され、データがデータテーブルに書き込まれていること。詳細については、「データテーブルの作成」および「データの書き込み」をご参照ください。
単一行のデータの削除
DeleteRow 操作を呼び出すことで、単一行のデータを削除できます。削除する行が存在しない場合、テーブルは変更されません。
API 操作
/**
* 単一行のデータを削除します。
*/
deleteRow(params, callback) パラメーター
パラメーター | 必須 | 説明 |
tableName | はい | データテーブルの名前。 |
primaryKey | はい | 行のプライマリキー。このパラメーターの値は、各プライマリキー列の名前、タイプ、および値で構成されます。 重要 指定するプライマリキー列の数とタイプは、テーブル内のプライマリキー列の実際の数とタイプと同じである必要があります。 |
condition | はい | 操作を実行するために満たす必要がある条件。行の有無の条件、または列の値に基づく条件を指定できます。詳細については、「条件付き更新の構成」をご参照ください。 |
サンプルコード
次のサンプルコードは、データテーブルから行を削除する方法の例を示しています。
var TableStore = require('../index.js');
var Long = TableStore.Long;
var client = require('./client');
var params = {
tableName: "sampleTable",
condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null),
primaryKey: [{ 'gid': Long.fromNumber(8) }, { 'uid': Long.fromNumber(80) }]
};
client.deleteRow(params, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', data);
});
詳細なサンプルコードを表示するには、DeleteRow@ GitHub にアクセスしてください。
複数行のデータを同時に削除
ビジネス要件に基づいて適切なメソッドを選択し、削除するデータのプライマリキー情報をクエリします。
プライマリキー値が特定の範囲内にあるデータを削除するには、GetRange 操作を呼び出してデータをクエリし、データのプライマリキー情報を取得します。詳細については、「プライマリキー値が特定の範囲内にあるデータの読み取り」をご参照ください。
検索インデックスが作成されたデータテーブルから、特定の条件を満たすデータを削除するには、検索インデックスを使用してデータをクエリし、データのプライマリキー情報を取得します。詳細については、「基本的なクエリ」をご参照ください。
データテーブルからすべてのデータを削除するには、データテーブルを削除し、同じ構成のデータテーブルを作成することをお勧めします。
また、GetRange 操作を呼び出し、開始プライマリキーを INF_MIN に、終了プライマリキーを INF_MAX に設定して、テーブル内のすべてのデータをスキャンすることもできます。この方法では、テーブル内のすべてのデータのプライマリキー情報を取得できます。ただし、これには大量の計算リソースが消費されます。ご注意ください。
行のプライマリキー情報に基づいて、BatchWriteRow 操作を呼び出して、複数行のデータを同時に削除します。詳細については、「複数行のデータを同時に書き込む」をご参照ください。
関連情報
Time to Live(TTL)は、データの保存期間を指定します。データテーブルに TTL を構成して、期限切れのデータを自動的に削除できます。詳細については、「データバージョンと TTL」をご参照ください。