更新表配置

本文介绍如何通过 PHP SDK 更新表的配置信息。

前提条件

初始化Tablestore Client

方法说明

public function updateTable(array $request)

$request参数说明

  • table_name(必选)string:数据表名称。

  • table_options(可选)object:表配置信息,包含以下参数。

    名称

    类型

    说明

    time_to_live(可选)

    int

    数据生命周期,单位为秒。

    • 设置为-1时表示数据永不过期,否则取值最低为86400(1天),超出生命周期的数据将会被自动清除。

    • 如果要使用多元索引或二级索引功能,必须将数据生命周期设置为-1,或者将allow_update参数设置为false。

    max_versions(可选)

    int

    最大版本数。

    • 如果要使用多元索引或二级索引,最大版本数必须设置为1。

    deviation_cell_version_in_sec(可选)

    int

    有效版本偏差,单位为秒。

    • 写入数据的时间戳与系统当前时间的差值必须在有效版本偏差范围内,否则写入数据将会失败。

    • 属性列数据的有效版本范围为[max(数据写入时间-有效版本偏差, 数据写入时间-数据生命周期), 数据写入时间+有效版本偏差)

    allow_update(可选)

    bool

    是否允许更新。

    • 设置为false时,无法通过updateRow()方法更新数据。

  • stream_spec(可选)object:Stream配置信息,包含以下参数。

    名称

    类型

    说明

    enable_stream(可选)

    bool

    是否开启Stream。

    enable_stream(可选)

    int

    Stream过期时间,表示增量日志过期时长。单位为小时,最大值为168(7天)。

    • enable_stream设置为true时,必须设置expiration_time。

  • reserved_throughput(可选)object预留读写吞吐量,单位为CU。仅CU模式的高性能型实例可以设置为非零值且有效。

说明

调用updateTable()方法时,必须设置table_options、stream_spec中的至少一项。

设置 table_options 时,必须设置time_to_live、max_versions、deviation_cell_version_in_sec、allow_update中的至少一项。

示例代码

以下示例代码用于修改test_table表的配置信息。

$request = array (
    'table_name' => 'test_table',
    'table_options' => array (
        'time_to_live' => 86400,
        'max_versions' => 3,
        'deviation_cell_version_in_sec' => 86400,
        'allow_update' => false
    ), 
     'stream_spec' => array (
        'enable_stream' => true,
        'expiration_time' => 168
     ),
    'reserved_throughput' => array (
        'capacity_unit' => array (
            'read' => 0,
            'write' => 0
        )
    )
);

try{
    $client->updateTable( $request );
    echo "Update table succeeded.";
} catch (Exception $e) {
    echo "Update table failed.";
}