表格存储的 SDK 提供了 PutRow、GetRow、UpdateRow 和 DeleteRow 等单行操作的接口。

插入一行数据(PutRow)

API说明

PutRow 接口用于插入一行数据。若该行不存在则插入,如果该行已经存在则覆盖(即原行的所有列以及所有版本的列值都被删除)。

PutRow 写入时支持条件更新(Conditional Update),可以设置原行的存在性条件或者原行中某列的列值条件,条件更新一章对此有专门介绍。

接口
    /**
     * 写入一行数据。如果该行已经存在,则覆盖原有数据。返回该操作消耗的CU。
     * API说明:https://help.aliyun.com/document_detail/27306.html
     * @api
     * @param [] $request 请求参数
     * @return [] 请求返回 
     * @throws OTSClientException 当参数检查出错或服务端返回校验出错时
     * @throws OTSServerException 当OTS服务端返回错误时
     */
    public function putRow(array $request); 
请求格式
$result = $client->putRow([
    'table_name' => '<string>', // REQUIRED
    'condition' => [
        'row_existence' => <RowExistence>,   
        'column_condition' => <ColumnCondition>
    ],
    'primary_key' => [                              // REQUIRED
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],  
    'attribute_columns' => [         // REQUIRED
            ['<string>', <ColumnValue>], 
            ['<string>', <ColumnValue>, <ColumnType>],
            ['<string>', <ColumnValue>, <ColumnType>, <integer>]
    ],
    'return_content' => [
        'return_type' => <ReturnType>
    ]
]);

请求格式说明
  • table_name 表名。必须设置。
  • condition 。参加条件更新
    • row_existence 行存在性条件
    • column_condition 列条件
  • primary_key 行的主键值。(必须设置)。
    • 表的主键可包含多个主键列。主键列是有顺序的,与用户添加的顺序相同。比如 PRIMARY KEY (A, B, C) 与 PRIMARY KEY (A, C, B) 是不同的两个主键结构。表格存储会按照整个主键的大小对行进行排序,具体请参见表格存储数据模型和查询操作
    • 每一项的顺序是 主键名、主键值、主键类型PrimaryKeyType(可选)。
    • PrimaryKeyValue可以是整数和字符串,对于自增主键列,可以设置为null。
    • PrimaryKeyType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY、PK_AUTO_INCR(自增列,详见主键列自增)四种,分别用PrimaryKeyTypeConst::CONST_INTEGER,PrimaryKeyTypeConst::CONST_STRING,PrimaryKeyTypeConst::CONST_BINARY,PrimaryKeyTypeConst::CONST_PK_AUTO_INCR表示,对于INTEGER和STRING,可以省略,其它类型不可省略。
  • attribute_columns 行的属性值(必须设置)。
    • 每一项的顺序是 属性名、属性值ColumnValue、属性类型ColumnType(可选)、时间戳(可选)。
    • ColumnType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY、BOOLEAN、DOUBLE五种,分别用ColumnTypeConst::CONST_INTEGER,ColumnTypeConst::CONST_STRING,ColumnTypeConst::CONST_BINARY,ColumnTypeConst::CONST_BOOLEAN,ColumnTypeConst::CONST_DOUBLE表示,其中BINARY不可省略,其他类型都可以省略,或者设为null。
    • 时间戳是64bit整数,用来表示属性的多个不同的版本,可以设置,也可以不设(由服务器指定)
  • return_content 表示返回类型。
    • return_type 目前只需要设置这个。
      • ReturnTypeConst::CONST_PK 表示返回主键值(主要用于主键列自增场景)
结果格式
[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key' => [ 
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],  
    'attribute_columns' => []
]
结果格式说明
  • consumed 本次操作消耗服务能力单元的值。
    • capacity_unit 使用的读写单元量
      • read 读吞吐量
      • write 写吞吐量
  • primary_key 主键的值,和请求一致。设置返回PK的时候会有值,主要用于主键列自增。
  • attribute_columns 属性的值,和请求一致,目前为空
示例 1

写入 10 列属性列,每列写入 1 个版本,由服务端指定版本号(时间戳)。

$attr = array();
for($i = 0; $i < 10; $i++) {
    $attr[] = ['Col'. $i, $i]; 
}
$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE, // condition可以为IGNORE, EXPECT_EXIST, EXPECT_NOT_EXIST
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'attribute_columns' => $attr
];
$response = $otsClient->putRow ($request);
示例 2

写入 10 列属性列,每列写入 3 个版本,由客户端指定版本号(时间戳)。

$attr = array();
$timestamp = getMicroTime();
for($i = 0; $i < 10; $i++) {
    for($j = 0; $j < 3; $j++) {
        $attr[] = ['Col'. $i, $j, null, $timestamp+$j];
    }
}
$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE, // condition可以为IGNORE, EXPECT_EXIST, EXPECT_NOT_EXIST
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'attribute_columns' => $attr
];
$response = $otsClient->putRow ($request);
示例 3

期望原行不存在时写入。

$attr = array();
$timestamp = getMicroTime();
for($i = 0; $i < 10; $i++) {
    for($j = 0; $j < 3; $j++) {
        $attr[] = ['Col'. $i, $j, null, $timestamp+$j];
    }
}
$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_EXPECT_NOT_EXIST, // 设置期望不存在时写入
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'attribute_columns' => $attr
];
$response = $otsClient->putRow ($request);
示例 4

期望原行存在,且 Col0 的值大于 100 时写入。

$attr = array();
$timestamp = getMicroTime();
for($i = 0; $i < 10; $i++) {
    for($j = 0; $j < 3; $j++) {
        $attr[] = ['Col'. $i, $j, null, $timestamp+$j];
    }
}
$request = [
    'table_name' => 'MyTable',
    'condition' => [
        'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST,// 设置期望存在时写入
        'column_condition' => [                  //条件更新,满足则更新
            'column_name' => 'Col0',
            'value' => 100,
            'comparator' => ComparatorTypeConst::CONST_GREATER_THAN
        ]
    ,
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'attribute_columns' => $attr
];
$response = $otsClient->putRow ($request);

读取一行数据(GetRow)

API说明

指定表名和一行的主键,读取的结果可能有两种:

  • 若该行存在,则返回该行的各主键列以及属性列。
  • 若该行不存在,则返回中不含有行,并且不会报错。
接口
    /**
     * 读取一行数据。
     * API说明:https://help.aliyun.com/document_detail/27305.html
     * @api
     * @param [] $request 请求参数
     * @return [] 请求返回 
     * @throws OTSClientException 当参数检查出错或服务端返回校验出错时
     * @throws OTSServerException 当OTS服务端返回错误时
     */
    public function getRow(array $request);
请求格式
$result = $client->getRow([
    'table_name' => '<string>',                     // REQUIRED
    'primary_key' => [                              // REQUIRED
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ], 
    'max_versions' => <integer>,
    'time_range' => [
        'start_time' => <integer>,
        'end_time' => <integer>,
        'specific_time' => <integer>
    ],
    'start_column' => '<string>',
    'end_column' => '<string>',
    'token' => '<string>',
    'columns_to_get' => [
        '<string>',
        '<string>',
        //...   
    ],
    'column_filter' =>  <ColumnCondition>
]);
请求格式说明
  • table_name 表名。必须设置。
  • primary_key 行的主键值。(必须设置)。
    • 表的主键可包含多个主键列。主键列是有顺序的,与用户添加的顺序相同。比如 PRIMARY KEY (A, B, C) 与 PRIMARY KEY (A, C, B) 是不同的两个主键结构。表格存储会按照整个主键的大小对行进行排序,具体请参见表格存储数据模型和查询操作
    • 每一项的顺序是 主键名、主键值、主键类型PrimaryKeyType(可选)。
    • PrimaryKeyValue可以是整数和字符串。
    • PrimaryKeyType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY三种,分别用PrimaryKeyTypeConst::CONST_INTEGER,PrimaryKeyTypeConst::CONST_STRING,PrimaryKeyTypeConst::CONST_BINARY表示,对于INTEGER和STRING,可以省略,其它类型不可省略。
  • max_versions 最多读取多少个版本(常用)。
  • time_range 要读取的版本号的范围。参见TimeRange
    • start_time 起始时间戳。单位是毫秒。时间戳的取值最小值为0,最大值为INT64.MAX。若要查询一个范围,则指定start_time和end_time,前闭后开区间。
    • end_time 结束时间戳。单位是毫秒。时间戳的取值最小值为0,最大值为INT64.MAX。
    • specific_time 特定的时间戳值,若要查询一个特定时间戳,则指定specific_time。specific_time和[start_time, end_time) 两个中设置一个即可。单位是毫秒。时间戳的取值最小值为0,最大值为INT64.MAX。
  • max_versions 与 time_range 必须至少设置一个。
    • 如果仅指定 max_versions,则返回所有版本里从新到旧至多指定数量个数据。
    • 如果仅指定 time_range,则返回该范围内所有数据。
    • 如果同时指定 max_versions 和 time_range,则返回版本范围内从新到旧至多指定数量个数据。
  • columns_to_get 要读取的列的集合(常用),若不设置,则读取所有列。
  • start_column 指定读取时的起始列,主要用于宽行读,返回的结果中包含当前起始列。列的顺序按照列名的字典序排序。例子:如果一张表有”a”,”b”,”c”三列,读取时指定start_column为“b”,则会从”b”列开始读,返回”b”,”c”两列。参见宽行读取
  • end_column 指定读取时的结束列,主要用于宽行读,返回的结果中不包含当前结束列。列的顺序按照列名的字典序排序。例子:如果一张表有”a”,”b”,”c”三列,读取时指定end_column为“b”,则读到”b”列时会结束,返回”a”列。
  • token 宽行读取时指定下一次读取的起始位置,暂不可用
  • column_filter 过滤条件,满足条件才会返回。和condition里面的column_condition类似。参见过滤器
结果格式
[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key' => [ 
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],  
    'attribute_columns' => [
            ['<string>', <ColumnValue>, <ColumnType>, <integer>]
            ['<string>', <ColumnValue>, <ColumnType>, <integer>]
            ['<string>', <ColumnValue>, <ColumnType>, <integer>]
    ],
    'next_token' => '<string>'
]
结果格式说明
  • consumed 本次操作消耗服务能力单元的值。
    • capacity_unit 使用的读写单元量
      • read 读吞吐量
      • write 写吞吐量
  • primary_key 主键的值,和请求一致。设置返回PK的时候会有值,主要用于主键列自增。
  • attribute_columns 属性的值
    • 每一项的顺序是 属性名、属性值ColumnValue、属性类型ColumnType、时间戳。
    • ColumnType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY、BOOLEAN、DOUBLE五种,分别用ColumnTypeConst::CONST_INTEGER,ColumnTypeConst::CONST_STRING,ColumnTypeConst::CONST_BINARY,ColumnTypeConst::CONST_BOOLEAN,ColumnTypeConst::CONST_DOUBLE表示。
    • 时间戳是64bit整数,用来表示属性的多个不同的版本
    • 返回结果中的属性会按照属性名的字典序升序,属性的多个版本按时间戳降序。
    • 其顺序不保证与 request 中的 columns_to_get 一致
  • next_token 表示宽行读取时下一次读取的位置,编码的二进制。(暂不可用)
  • 如果该行不存在,则 primary_key 和 attribute_columns 均为空列表[].
示例 1

读取一行,设置读取最新版本,设置 columns_to_get。

$request = [
    'table_name' => 'MyTable',
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'max_versions' => 1,                     // 设置读取最新版本
    'columns_to_get' => ['Col0']             // 设置读取某些列
];
$response = $otsClient->getRow ($request);

提示:

  • 查询一行数据时,默认返回这一行所有列的数据,如果想只返回特定列,可以通过 columns_to_get 接口限制,如果将 col0 和 col1 加入到 columns_to_get 中,则只返回 col0 和 col1 的值。

  • 查询时也支持按条件过滤,比如当 col0 的值大于 24 时才返回结果。

  • 当同时使用 columns_to_get 和 column_filter 时,顺序是 columns_to_get 先生效,然后再去返回的列中进行过滤。

  • 某列不存在时的行为,可以通过 pass_if_missing 控制。默认值是true,表示列不存在时该条件成立。

示例 2

设置过滤器。

$request = [
    'table_name' => 'MyTable',
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'max_versions' => 1,                     // 设置读取最新版本
    'column_filter' => [                     // 设置过滤器, 当Col0的值为0时返回该行.
        'column_name' => 'Col0',
        'value' => 0,
        'comparator' => ComparatorTypeConst::CONST_EQUAL,
        'pass_if_missing' => false          // 如果不存在Col0这一列, 也不返回.
    ]
];
$response = $otsClient->getRow ($request);

更新一行数据(UpdateRow)

API说明

UpdateRow 接口用于更新一行数据,如果原行不存在,会新写入一行。

更新操作包括写入某列、删除某列和删除某列的某一版本。

更新操作有以下四种情况:

  • 不指定版本写入一个列值,表格存储服务端会自动补上一个版本号,保证此种情况下版本号的递增。
  • 指定版本写入一个列值,若该列原先没有该版本列值,则插入数据,否则覆盖原值。
  • 删除指定版本的列值。
  • 删除整个列的所有版本列值。

UpdateRow 接口支持条件更新(Conditional Update),可以设置原行的存在性条件或者原行中某列的列值条件,条件更新一章对此有专门介绍。

接口
    /**
     * 更新一行数据。
     * API说明:https://help.aliyun.com/document_detail/27307.html
     * @api
     * @param [] $request 请求参数
     * @return [] 请求返回 
     * @throws OTSClientException 当参数检查出错或服务端返回校验出错时
     * @throws OTSServerException 当OTS服务端返回错误时
     */
    public function updateRow(array $request);
请求格式
$result = $client->updateRow([
    'table_name' => '<string>', // REQUIRED
    'condition' => [
        'row_existence' => <RowExistence>,
        'column_condition' => <ColumnCondition>
    ],
    'primary_key' => [                              // REQUIRED
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ], 
    'update_of_attribute_columns' => [         // REQUIRED
        'PUT' => [
            ['<string>', <ColumnValue>], 
            ['<string>', <ColumnValue>, <ColumnType>],
            ['<string>', <ColumnValue>, <ColumnType>, <integer>]
        ],
        'DELETE' => [
            ['<string>', <integer>], 
            ['<string>', <integer>], 
            ['<string>', <integer>], 
            ['<string>', <integer>]
        ],
        'DELETE_ALL' => [
            '<string>',
            '<string>',
            '<string>',
            '<string>'
        ],        
    ],
    'return_content' => [
        'return_type' => <ReturnType>
    ]
]);
请求格式说明
  • table_name 表名。必须设置。
  • condition 条件,满足条件才会生效。参见条件更新
    • row_existence 行存在性条件
    • column_condition 列条件
  • primary_key 行的主键值。(必须设置)。
    • 表的主键可包含多个主键列。主键列是有顺序的,与用户添加的顺序相同。比如 PRIMARY KEY (A, B, C) 与 PRIMARY KEY (A, C, B) 是不同的两个主键结构。表格存储会按照整个主键的大小对行进行排序,具体请参见表格存储数据模型和查询操作
    • 每一项的顺序是 主键名、主键值、主键类型PrimaryKeyType(可选)。
    • PrimaryKeyValue可以是整数和字符串。
    • PrimaryKeyType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY三种,分别用PrimaryKeyTypeConst::CONST_INTEGER,PrimaryKeyTypeConst::CONST_STRING,PrimaryKeyTypeConst::CONST_BINARY表示,对于INTEGER和STRING,可以省略,其它类型不可省略。
  • update_of_attribute_columns 行的属性的修改(必须设置,如果没有对应的操作,也可以没有其中的某项),有三种不同的更新操作,分别如下。
    • PUT 格式和PutRow的attribute_columns一致, 语意为如果该列不存在,则新增一列;如果该列存在,则覆盖该列,多版本则增加一个版本。
      • 每一项的顺序是 属性名、属性值ColumnValue、属性类型ColumnType(可选)、时间戳(可选)。
      • ColumnType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY、BOOLEAN、DOUBLE五种,分别用ColumnTypeConst::CONST_INTEGER,ColumnTypeConst::CONST_STRING,ColumnTypeConst::CONST_BINARY,ColumnTypeConst::CONST_BOOLEAN,ColumnTypeConst::CONST_DOUBLE表示,其中BINARY不可省略,其他类型都可以省略,或者设为null。
      • 时间戳是64bit整数,用来表示属性的多个不同的版本,可以设置,也可以不设(由服务器指定)
    • DELETE 需要指定timestamp。语意为删除该列特定版本的数据。
      • 每一项的顺序是 属性名,时间戳。
      • 时间戳是64bit整数,表示某个特定版本的属性。
    • DELETE_ALL 语意为删除该列所有版本的数据。注意:删除本行的全部属性列不等同于删除本行,若想删除本行,请使用 DeleteRow 操作。
      • 只需要指定属性名即可。
  • return_content 需要返回的内容。
    • return_type 目前只需要设置这个。
      • ReturnTypeConst::CONST_PK 表示返回主键值(主要用于主键列自增场景)
结果格式
[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key' => [ 
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],  
    'attribute_columns' => []
]
结果格式说明
  • consumed 本次操作消耗服务能力单元的值。
    • capacity_unit 使用的读写单元量
      • read 读吞吐量
      • write 写吞吐量
  • primary_key 主键的值,和请求一致。设置返回PK的时候会有值,主要用于主键列自增。
  • attribute_columns 属性的值,和请求一致,目前为空
示例1

更新一些列,删除某列的某一版本,删除某列。

$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE,
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'update_of_attribute_columns' => [
        'PUT' => [                       // 更新一些列
            ['Col0', 100],
            ['Col1', 'Hello'],
            ['Col2', 'a binary', ColumnTypeConst::CONST_BINARY],
            ['Col3', 100, null, 1526418378526]
        ],
        'DELETE' => [                    // 删除某列的某一版本
            ['Col10', 1526418378526]
        ],
        'DELETE_ALL' => [
            'Col11'                      // 删除某一列
        ]
    ]
];
$response = $otsClient->updateRow($request);

提示:

  • 更新一行数据也支持条件语句。
示例 2

设置更新的条件。

$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE,
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'condition' => [
        'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST, // 期望原行存在
        'column_filter' => [                                                 // Col0的值大于100时更新
            'column_name' => 'Col0',
            'value' => 100,
            'comparator' => ComparatorTypeConst::CONST_GREATER_THAN
        ]
    ],    
    'update_of_attribute_columns' => [
        'PUT' => [                       // 更新一些列
            ['Col0', 100],
            ['Col1', 'Hello'],
            ['Col2', 'a binary', ColumnTypeConst::CONST_BINARY],
            ['Col3', 100, null, 1526418378526]
        ],
        'DELETE' => [                    // 删除某列的某一版本
            ['Col10', 1526418378526]
        ],
        'DELETE_ALL' => [
            'Col11'                      // 删除某一列
        ]
    ]
];

删除一行数据(DeleteRow)

API说明

DeleteRow 接口用于删除一行。无论该行存在与否都不会报错。

DeleteRow 接口支持条件更新(Conditional Update),可以设置原行的存在性条件或者原行中某列的列值条件,[条件更新]一章对此有专门介绍。

接口
    /**
     * 删除一行数据。
     * API说明:https://help.aliyun.com/document_detail/27308.html
     * @api
     * @param [] $request 请求参数
     * @return [] 请求返回 
     * @throws OTSClientException 当参数检查出错或服务端返回校验出错时
     * @throws OTSServerException 当OTS服务端返回错误时
     */
    public function deleteRow(array $request);
请求格式
$result = $client->deleteRow([
    'table_name' => '<string>', // REQUIRED
    'condition' => [
        'row_existence' => <RowExistence>,
        'column_condition' => <ColumnCondition>
    ],
    'primary_key' => [                              // REQUIRED
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],
    'return_content' => [
        'return_type' => <ReturnType>
    ]
]);
请求格式说明
  • table_name 表名。必须设置。
  • condition 条件,满足条件才会生效。参见条件更新
    • row_existence 行存在性条件
    • column_condition 列条件
  • primary_key 行的主键值。(必须设置)。
    • 表的主键可包含多个主键列。主键列是有顺序的,与用户添加的顺序相同。比如 PRIMARY KEY (A, B, C) 与 PRIMARY KEY (A, C, B) 是不同的两个主键结构。表格存储会按照整个主键的大小对行进行排序,具体请参见表格存储数据模型和查询操作
    • 每一项的顺序是 主键名、主键值、主键类型PrimaryKeyType(可选)。
    • PrimaryKeyValue可以是整数和字符串。
    • PrimaryKeyType可以是INTEGER、STRING(UTF-8编码字符串)、BINARY三种,分别用PrimaryKeyTypeConst::CONST_INTEGER,PrimaryKeyTypeConst::CONST_STRING,PrimaryKeyTypeConst::CONST_BINARY表示,对于INTEGER和STRING,可以省略,其它类型不可省略。
  • return_content 表示返回类型。

    • return_type 目前只需要设置这个。

      • ReturnTypeConst::CONST_PK 表示返回主键值(主要用于主键列自增场景)

结果格式
[
    'consumed' => [
        'capacity_unit' => [
            'read' => <integer>,
            'write' => <integer>
        ]
    ],
    'primary_key' => [
        ['<string>', <PrimaryKeyValue>], 
        ['<string>', <PrimaryKeyValue>],
        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
    ],
    'attribute_columns' => []
]
结果格式说明
  • consumed 本次操作消耗服务能力单元的值。
    • capacity_unit 使用的读写单元量
      • read 读吞吐量
      • write 写吞吐量
  • primary_key 主键的值,和请求一致。设置返回PK的时候会有值,主要用于主键列自增。
  • attribute_columns 属性的值,和请求一致,目前为空
示例1

删除一行数据。

$request = [
    'table_name' => 'MyTable',
    'condition' => RowExistenceExpectationConst::CONST_IGNORE,
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ],
    'return_content' => [
        'return_type' => ReturnTypeConst::CONST_PK     // 列自增需要主键返回需要设置return_type
    ]
];
$response = $otsClient->deleteRow($request);
示例2

设置删除条件。

$request = [
    'table_name' => 'MyTable',
    'condition' => [
        'row_existence' => RowExistenceExpectationConst::CONST_EXPECT_EXIST, //期望原行存在
        'column_filter' => [          // Col0的值大于100时删除
            'column_name' => 'Col0',
            'value' => 100,
            'comparator' => ComparatorTypeConst::CONST_GREATER_THAN
        ],
    ],
    'primary_key' => [ // 主键
        ['PK0', 123],
        ['PK1', 'abc']
    ]
];
$response = $otsClient->deleteRow ($request);