如何删除数据表中的属性列

更新时间:2025-02-11 02:33:00

数据表具有Schema-Free的特点,每一行数据可能具有不同的属性列,因此无法一次性删除数据表中所有行的指定属性列。

您可以在获取某一行数据的主键信息后,调用UpdateRow接口删除该行的属性列。此处以Java SDK为例介绍删除某一行指定的属性列Col。

private static void updateRow(SyncClient client, String pkValue) {
    //构造主键。
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("<PRIMARY_KEY_NAME>", PrimaryKeyValue.fromString(pkValue));
    PrimaryKey primaryKey = primaryKeyBuilder.build();
    
    //设置数据表名称。
    RowUpdateChange rowUpdateChange = new RowUpdateChange("<TABLE_NAME>", primaryKey);

    //删除属性列的所有版本。
    rowUpdateChange.deleteColumns("Col");
    //删除属性列的指定版本。
    //rowUpdateChange.deleteColumn("Col", 1465373223000L);

    client.updateRow(new UpdateRowRequest(rowUpdateChange));
}  

如果需要批量删除多行数据的属性列,您可以调用BatchWriteRow接口进行批量操作。

说明

BatchWriteRow限制单次只能写入200行数据,您可以使用TableStoreWriter工具类进行高并发、高吞吐率的数据写入。更多信息,请参见使用TableStoreWriter并发写入数据