1.5.3 删除记录

优质
小牛编辑
134浏览
2023-12-01

RemoveResult remove(RemoveRequest request)

功能

删除某个表的一条记录,可以删除全部或者部分属性,也可以指定条件,当条件成立时才删除成功

消耗一个单位写配额,如果带了条件,还消耗一个单位读配额(另外如果创建了EAGER类型的二级索引,每个Eager二级索引需要1个额外读配额)

方法参数

request : RemoveRequest : required

RemoveRequest包括以下部分

1.tableName : String : required

指定要删除哪一张表的记录

2.keys : Map< String, Datum > : required

指定要删除哪一行,即那行的实体组键(若存在)和主键的属性值,keys必须包含所有的实体组键(若存在)和主键的属性

3.attributes : List< String > : optional

待删除的属性列表,不指定表示删除整条记录, 当删除部分属性时,即使所有属性均已被删除,记录仍存在,删除整条记录需要显式删除

4.condition : SimpleCondition : optional

指定删除成功的条件,即条件成立时才能删除成功,是原子的check and set语义

其条件可以包括:指定该行的某一个属性大于、大于或等于、等于、小于或等于、小于某个值,或者是该行是否已存在

方法返回值

removeResult : RemoveResult

removeResult 只有success一个boolean值,表示删除成功与否

若调用超时,不能确定记录是否被删除

异常错误码

INTERNAL_ERROR(1) : 服务器异常

ACCESS_DENIED(4) : 用户对该表没有写权限

VALIDATION_FAILED(5): keys没有完全包含实体组键(若存在)和主键的属性,或者指定的属性不存在,或者condition中指定的列不存在

THROUGHPUT_EXCEED(8): 当前读写速度已超过该表的读写配额

RESOURCE_NOT_FOUND(9) : 所指定的表不存在

限制

keys必须包含实体组键(若存在)和主键的属性

示例

以示例表为例,下面给出删除数据的示例代码

$tableName = 'php-note';
$remove = new RemoveRequest(array(
    "tableName" => $tableName,
    "keys" => array(
        "userId" => DatumUtil::datum("user1"),
        "noteId" => DatumUtil::datum(0),
    )
));
$tableClient->remove($remove);