通过 Java SDK 执行 INSERT 语句,向未开启局部事务功能的数据表写入一行或多行数据。
前提条件
安装Tablestore Java SDK并初始化客户端。
使用 5.17.11 及以上版本的 Tablestore Java SDK。
已为待写入的数据表创建映射关系,且数据表未开启局部事务功能。
使用 RAM 用户时,已授予
SQL_DML权限。
功能说明
调用 sqlQuery 方法执行 INSERT 语句,向数据表写入数据。如果写入数据的主键已存在,请求会失败。
SQLQueryResponse sqlQuery(SQLQueryRequest request)
以下示例向 example_table 数据表写入一行数据。
String query = "INSERT INTO example_table "
+ "(tenant_id, pk, name, score) "
+ "VALUES (1, 'row1', 'example', 10)";
SQLQueryRequest request = new SQLQueryRequest(query);
SQLQueryResponse response = client.sqlQuery(request);
System.out.println("Affected rows: " + response.getAffectedRows());
参数说明
SQLQueryRequest 包含以下参数。
|
名称 |
类型 |
说明 |
|
query(必选) |
String |
要执行的 |
返回值
SQLQueryResponse 包含以下与写入结果相关的字段。
|
字段 |
类型 |
说明 |
|
|
long |
通过 |
|
|
Map<String, ConsumedCapacity> |
通过 |
|
|
SQLStatementType |
通过 |
场景示例
批量写入数据
一条 INSERT 语句最多可以写入 200 行数据。批量写入的多行数据必须具有相同的分区键,并作为一个原子操作执行:全部写入成功或全部写入失败。
String query = "INSERT INTO example_table "
+ "(tenant_id, pk, name, score) VALUES "
+ "(1, 'row1', 'example-a', 10), "
+ "(1, 'row2', 'example-b', 20), "
+ "(1, 'row3', 'example-c', 30)";
SQLQueryRequest request = new SQLQueryRequest(query);
SQLQueryResponse response = client.sqlQuery(request);
System.out.println("Affected rows: " + response.getAffectedRows());
该文章对您有帮助吗?