刪除數(shù)據(jù)
表格存儲(chǔ)提供了DeleteRow接口用于刪除單行數(shù)據(jù)以及BatchWriteRow接口用于批量刪除數(shù)據(jù)。
注意事項(xiàng)
刪除表數(shù)據(jù),將導(dǎo)致數(shù)據(jù)不可恢復(fù),請(qǐng)謹(jǐn)慎操作。
前提條件
已初始化Client,具體操作,請(qǐng)參見初始化Client。
已創(chuàng)建數(shù)據(jù)表并寫入數(shù)據(jù)。具體操作,請(qǐng)參見創(chuàng)建數(shù)據(jù)表和寫入數(shù)據(jù)。
刪除單行數(shù)據(jù)
調(diào)用DeleteRow接口刪除一行數(shù)據(jù)。如果刪除的行不存在,則不會(huì)發(fā)生任何變化。
接口
/**
* 刪除一行數(shù)據(jù)。
*/
deleteRow(params, callback)
參數(shù)
參數(shù) | 是否必選 | 說明 |
tableName | 是 | 數(shù)據(jù)表名稱。 |
primaryKey | 是 | 行的主鍵。主鍵包括主鍵列名、主鍵類型和主鍵值。 重要 設(shè)置的主鍵個(gè)數(shù)和類型必須和數(shù)據(jù)表的主鍵個(gè)數(shù)和類型一致。 |
condition | 是 | 使用條件更新,可以設(shè)置原行的存在性條件或者原行中某列的列值條件。更多信息,請(qǐng)參見條件更新。 |
示例
以下示例用于刪除數(shù)據(jù)表中的指定行。
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);
});
詳細(xì)代碼請(qǐng)參見DeleteRow@GitHub。
批量刪除數(shù)據(jù)
根據(jù)實(shí)際選擇合適的方式查詢待刪除數(shù)據(jù)的主鍵信息。
如果要?jiǎng)h除指定主鍵范圍內(nèi)的數(shù)據(jù),請(qǐng)調(diào)用GetRange接口,查詢指定主鍵范圍內(nèi)的數(shù)據(jù),并獲取待刪除數(shù)據(jù)的主鍵信息。具體操作,請(qǐng)參見范圍讀取數(shù)據(jù)。
如果要?jiǎng)h除滿足指定條件的數(shù)據(jù),請(qǐng)創(chuàng)建多元索引后,使用多元索引查詢滿足指定條件的數(shù)據(jù),并獲取待刪除數(shù)據(jù)的主鍵信息。具體操作,請(qǐng)參見創(chuàng)建多元索引和通過SDK使用多元索引。
調(diào)用BatchWriteRow接口,根據(jù)主鍵信息批量刪除數(shù)據(jù)。更多信息,請(qǐng)參見批量寫入數(shù)據(jù)。
相關(guān)文檔
如果要?jiǎng)h除指定天數(shù)之前的數(shù)據(jù),您可以通過為數(shù)據(jù)表配置數(shù)據(jù)生命周期的方式自動(dòng)清理過期數(shù)據(jù)。具體操作,請(qǐng)參見數(shù)據(jù)版本和生命周期。