Postgres节点常见问题#
以下是Postgres节点常见错误和问题及其解决方法或排查步骤。
使用参数动态填充SQL IN分组#
在Postgres中,您可以使用SQL IN比较结构来进行值组之间的比较:
1 | |
虽然您可以在查询中使用n8n 表达式动态填充IN分组中的值,但将其与查询参数结合使用可通过自动清理输入提供额外保护。
使用查询参数构建IN分组查询:
- 将操作(Operation)设置为执行查询(Execute Query)。
- 在选项中,选择查询参数。
- 使用表达式从输入数据中选择数组。例如,
{{ $json.input_shirt_sizes }}。 - 在Query参数中,使用
IN结构并附带空括号集编写您的查询。例如:1SELECT color, shirt_size FROM shirts WHERE shirt_size IN (); - 在
IN括号内,使用表达式为查询参数数组中的项目数量动态创建基于索引的占位符(如$1、$2和$3)。由于占位符变量从1开始索引,您可以通过将每个数组索引加1来实现:1SELECT color, shirt_size FROM shirts WHERE shirt_size IN ({{ $json.input_shirt_sizes.map((i, pos) => "$" + (pos+1)).join(', ') }});
通过这种技术,n8n会根据数组中元素的数量自动创建正确数量的预处理语句占位符用于IN值。
处理时间戳和时区#
为避免n8n和Postgres在解释时间戳和时区数据时出现复杂情况,请遵循以下通用建议: