24.4. 关于 SQL 语句中更新数据的参数占位符和值
位于流中或完成简单集成的数据库连接可以执行更新数据的 SQL 语句。当您向集成添加数据库连接时,您可以指定要执行的 SQL 语句中的占位符参数。在执行期间,当输入参数值位于集合中时,连接可以执行批处理更新。
在 SQL 语句中指定参数
当您创建或编辑集成,并添加更新数据库的连接,您可以在 SQL 语句中指定连接在运行时执行的占位符参数,或者存储过程中将执行占位符。例如:
INSERT INTO TODO(task, completed) VALUES(:#param_1, :#param_2) DELETE FROM TODO WHERE task LIKE :#param_3
要指定这些占位符的值,请在数据库连接前向流添加数据映射步骤。在数据映射步骤中,将适当的源数据字段映射到目标数据字段,例如,将源数据映射到 :#param_1
,:#param_2
, 和 :#param_3
target 字段。请参阅 添加数据映射程序步骤。
使用一组参数值进行批量更新
在运行时,当数据库连接执行插入、删除或更新数据的 SQL 语句时,执行的 SQL 语句通常会指定一个或多个占位符参数,例如 :#task
。执行此操作时,对连接的输入可以是一组参数或一组参数集,其中集合中的每个元素为对应的占位符参数定义一个值。
数据库连接的输入来自较早的连接,例如,HTTP 请求(Webhook)或发送到 REST API 服务的请求,用于 API 供应商集成。当输入是集合时,连接使用批处理模式来更新表。例如,考虑这个 SQL 语句:
insert into todo (task) values (:#task)
如果输入集合包含 3 个值,连接会插入三个记录,每个记录对应一个。现在考虑一个带有两个占位符参数的 SQL 语句:
insert into todo (task, completed) values (:#task, :#completed)
在执行此 SQL 语句的连接的输入中,数据组成规格可以指定单个元素,例如:
{"task": "write some docs", "completed": 0}
或者可以指定集合,例如:
[{"task": "write doc", "completed": 1}, {"task": "publish doc", "completed": 0}]
当集合作为输入时,连接会对每个一组参数值执行插入操作一次。在本例中,连接向表中添加两个记录,分别对应于每组参数值。