Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
c545acff
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c545acff
编写于
8月 20, 2021
作者:
E
Elias Soong
提交者:
GitHub
8月 20, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #7494 from taosdata/docs/Update-Latest-Feature
[TD-5331] <docs>: describe stmt function for inserting data into mult…
上级
306137ca
7ad60853
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
0 deletion
+10
-0
documentation20/cn/08.connector/docs.md
documentation20/cn/08.connector/docs.md
+10
-0
未找到文件。
documentation20/cn/08.connector/docs.md
浏览文件 @
c545acff
...
...
@@ -315,6 +315,10 @@ TDengine的异步API均采用非阻塞调用模式。应用程序可以用多线
1.
调用
`taos_stmt_init`
创建参数绑定对象;
2.
调用
`taos_stmt_prepare`
解析 INSERT 语句;
3.
如果 INSERT 语句中预留了表名但没有预留 TAGS,那么调用
`taos_stmt_set_tbname`
来设置表名;
*
从 2.1.6.0 版本开始,对于向一个超级表下的多个子表同时写入数据(每个子表写入的数据较少,可能只有一行)的情形,提供了一个专用的优化接口
`taos_stmt_set_sub_tbname`
,可以通过提前载入 meta 数据以及避免对 SQL 语法的重复解析来节省总体的处理时间(但这个优化方法并不支持自动建表语法)。具体使用方法如下:
1.
必须先提前调用
`taos_load_table_info`
来加载所有需要的超级表和子表的 table meta;
2.
然后对一个超级表的第一个子表调用
`taos_stmt_set_tbname`
来设置表名;
3.
后续子表用
`taos_stmt_set_sub_tbname`
来设置表名。
4.
如果 INSERT 语句中既预留了表名又预留了 TAGS(例如 INSERT 语句采取的是自动建表的方式),那么调用
`taos_stmt_set_tbname_tags`
来设置表名和 TAGS 的值;
5.
调用
`taos_stmt_bind_param_batch`
以多列的方式设置 VALUES 的值,或者调用
`taos_stmt_bind_param`
以单行的方式设置 VALUES 的值;
6.
调用
`taos_stmt_add_batch`
把当前绑定的参数加入批处理;
...
...
@@ -358,6 +362,12 @@ typedef struct TAOS_BIND {
(2.1.1.0 版本新增,仅支持用于替换 INSERT 语句中的参数值)
当 SQL 语句中的表名使用了
`?`
占位时,可以使用此函数绑定一个具体的表名。
-
`int taos_stmt_set_sub_tbname(TAOS_STMT* stmt, const char* name)`
(2.1.6.0 版本新增,仅支持用于替换 INSERT 语句中、属于同一个超级表下的多个子表中、作为写入目标的第 2 个到第 n 个子表的表名)
当 SQL 语句中的表名使用了
`?`
占位时,如果想要一批写入的表是多个属于同一个超级表的子表,那么可以使用此函数绑定除第一个子表之外的其他子表的表名。
*注意:*
在使用时,客户端必须先调用
`taos_load_table_info`
来加载所有需要的超级表和子表的 table meta,然后对一个超级表的第一个子表调用
`taos_stmt_set_tbname`
,后续子表用
`taos_stmt_set_sub_tbname`
。
-
`int taos_stmt_set_tbname_tags(TAOS_STMT* stmt, const char* name, TAOS_BIND* tags)`
(2.1.2.0 版本新增,仅支持用于替换 INSERT 语句中的参数值)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录