Postgres 节点#
使用 Postgres 节点可实现 Postgres 中的工作自动化,并将 Postgres 与其他应用程序集成。n8n 内置支持多种 Postgres 功能,包括执行查询、在数据库中插入和更新行等。
在本页面,您将找到 Postgres 节点支持的操作列表以及相关资源的链接。
凭据
有关设置身份验证的指导,请参阅 Postgres 凭据。
可作为 AI 工具使用的节点
该节点可用于增强 AI 代理(AI agent)的功能。以这种方式使用时,许多参数可以自动设置,或由 AI 指导填写——更多信息请参见 AI 工具参数文档。
操作#
- 删除 (Delete):删除整个表或表中的行
- 执行查询 (Execute Query):执行 SQL 查询
- 插入 (Insert):向表中插入行
- 插入或更新 (Insert or Update):向表中插入或更新行
- 选择 (Select):从表中选择行
- 更新 (Update):更新表中的行
删除#
使用此操作可删除整个表或表中的行。 输入以下参数:
- 连接凭据(Credential to connect with):创建或选择一个现有的 Postgres 凭据。
- 操作(Operation):选择 Delete。
- 模式(Schema):选择包含目标表的模式。选择 From list 可从下拉列表中选择模式,或选择 By Name 手动输入模式名称。
- 表(Table):选择要操作的表。选择 From list 可从下拉列表中选择表,或选择 By Name 手动输入表名。
- 命令(Command):指定删除操作类型:
- Truncate:清除表中的数据,但保留表结构。
- Restart Sequences:是否在 Truncate 过程中将自增列重置为其初始值。
- Delete:删除满足“选择行(Select Rows)”条件的行。如果不设置任何条件,Postgres 将删除所有行。
- Select Rows:定义 列(Column)、操作符(Operator) 和 值(Value) 来匹配需要删除的行。
- 组合条件(Combine Conditions):如何组合“选择行”中的多个条件。AND 表示所有条件都必须为真,OR 表示至少一个条件为真即可。
- Drop:永久删除表的数据和结构。
- Truncate:清除表中的数据,但保留表结构。
删除选项#
- 级联(Cascade):是否同时删除依赖该表的所有对象(如视图和序列)。此选项在使用 Truncate 或 Drop 命令时可用。
- 连接超时(Connection Timeout):尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection):在认定空闲连接可以关闭之前等待的秒数。
- 查询批处理(Query Batching):向数据库发送查询的方式:
- 单个查询(Single Query):对所有传入项目执行一条查询。
- 独立执行(Independently):对每个传入的执行项分别执行一条查询。
- 事务执行(Transaction):将所有查询放在一个事务中执行。如果发生错误,Postgres 会回滚所有更改。
- 大数值输出格式(Output Large-Format Numbers As):
NUMERIC和BIGINT列的输出格式:- Numbers:适用于标准数值。
- Text:如果你预期数值长度超过 16 位,请使用此选项。否则数值可能会出错。
执行查询#
使用此操作来执行 SQL 查询。 输入以下参数:
- 连接凭据(Credential to connect with):创建或选择一个现有的 PostgreSQL 凭据。
- 操作(Operation):选择 执行查询(Execute Query)。
- 查询(Query):要执行的 SQL 查询语句。你可以使用 n8n 的 表达式(expressions) 和类似
$1、$2、$3的占位符来构建 预编译语句(prepared statements),并与 查询参数(query parameters) 配合使用。
执行查询选项#
- 连接超时(Connection Timeout):尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection):在考虑关闭空闲连接之前等待的秒数。
- 查询批处理(Query Batching):向数据库发送查询的方式:
- 单条查询(Single Query):对所有传入的数据项执行一条查询。
- 独立执行(Independently):为每次执行中的每个传入数据项单独执行一次查询。
- 事务模式(Transaction):在事务中执行所有查询。如果发生错误,PostgreSQL 将回滚所有更改。
- 查询参数(Query Parameters):以逗号分隔的值列表,用作 查询参数(query parameters)。
- 大数值输出格式(Output Large-Format Numbers As):指定
NUMERIC和BIGINT列的输出格式:- 数字(Numbers):适用于标准数值。
- 文本(Text):如果你预期数值长度超过 16 位,请使用此选项。否则数值可能会出错。
- 将空字符串替换为 NULL(Replace Empty Strings with NULL):是否在输入中将空字符串替换为 NULL。在处理从电子表格软件导出的数据时,此选项可能很有用。
插入#
使用此操作在表中插入行。 输入以下参数:
- 连接凭据(Credential to connect with):创建或选择一个现有的 Postgres 凭据。
- 操作(Operation):选择 Insert(插入)。
- 模式(Schema):选择包含目标表的模式。选择 From list(从列表中选择) 以从下拉列表中选取模式,或选择 By Name(按名称) 手动输入模式名称。
- 表(Table):选择要操作的表。选择 From list(从列表中选择) 以从下拉列表中选取表,或选择 By Name(按名称) 手动输入表名。
- 列映射模式(Mapping Column Mode):如何将列名与传入的数据进行映射:
- 手动映射每一列(Map Each Column Manually):为每一列选择对应的值。
- 自动映射(Map Automatically):自动将传入数据映射到 Postgres 中名称匹配的列。此功能要求传入的数据字段名称必须与 Postgres 中的列名完全一致。如有需要,可在本节点前使用 编辑字段(设置)节点(edit fields (set) node) 调整数据格式。
插入选项#
- 连接超时(Connection Timeout):尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection):等待多少秒后才将空闲连接视为可关闭状态。
- 查询批处理(Query Batching):向数据库发送查询的方式:
- 单条查询(Single Query):对所有传入项执行一条查询。
- 独立执行(Independently):对每次执行中的每个传入项分别执行一条查询。
- 事务执行(Transaction):在事务中执行所有查询。如果发生错误,Postgres 将回滚所有更改。
- 输出列(Output Columns):选择要输出的列。可以从可用列的列表中选择,或使用 表达式(expressions) 指定列 ID。
- 大数值输出格式(Output Large-Format Numbers As):指定
NUMERIC和BIGINT列的输出格式:- 数字(Numbers):适用于标准数值。
- 文本(Text):当预期数值长度超过 16 位时使用。如果不启用此选项,长数字可能会出错。
- 冲突时跳过(Skip on Conflict):如果插入操作违反了唯一性约束或排除约束,是否跳过该行而不抛出错误。
- 将空字符串替换为 NULL(Replace Empty Strings with NULL):是否在输入中将空字符串替换为 NULL。此选项在处理从电子表格软件导出的数据时可能很有用。
插入或更新#
使用此操作在表中插入或更新行。 输入以下参数:
- 连接凭证(Credential to connect with):创建或选择一个现有的 Postgres 凭证。
- 操作(Operation):选择 Insert or Update(插入或更新)。
- Schema(模式):选择包含目标表的 schema。选择 From list(从列表中选择)以从下拉列表中选取 schema,或选择 By Name(按名称)手动输入 schema 名称。
- Table(表):选择要操作的表。选择 From list 从下拉列表中选择表,或选择 By Name 手动输入表名。
- 列映射模式(Mapping Column Mode):如何将列名与传入的数据进行映射:
- 手动映射每一列(Map Each Column Manually):为每一列选择对应的值。
- 自动映射(Map Automatically):自动将传入数据映射到 Postgres 中名称匹配的列。为此功能正常工作,传入数据的字段名称必须与 Postgres 中的列名完全一致。如有需要,可在此节点之前使用 编辑字段(设置)节点(edit fields (set) node) 调整数据格式。
插入或更新选项#
- 连接超时(Connection Timeout):尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection):等待多少秒后,将空闲连接视为可关闭状态。
- 查询批处理(Query Batching):向数据库发送查询的方式:
- 单个查询(Single Query):对所有传入项执行一条查询。
- 独立执行(Independently):对每次执行中的每个传入项分别执行一条查询。
- 事务执行(Transaction):在事务中执行所有查询。如果发生失败,Postgres 将回滚所有更改。
- 输出列(Output Columns):选择要输出的列。可以从可用列的列表中选择,或使用 表达式(expressions) 指定列 ID。
- 大数值输出格式(Output Large-Format Numbers As):指定
NUMERIC和BIGINT列的输出格式:- 数字(Numbers):适用于标准数值。
- 文本(Text):如果你预期数值长度超过 16 位数字,请使用此选项。否则,长数字可能会出错。
- 将空字符串替换为 NULL(Replace Empty Strings with NULL):是否在输入中将空字符串替换为 NULL。此选项在处理从电子表格软件导出的数据时可能非常有用。
选择(Select)#
使用此操作从表中选择行。 输入以下参数:
- 连接凭据(Credential to connect with) : 创建或选择一个现有的 Postgres 凭据。
- 操作(Operation) : 选择 Select。
- 模式(Schema) : 选择包含目标表的模式。选择 From list 可从下拉列表中选择模式,或选择 By Name 手动输入模式名称。
- 表(Table) : 选择要操作的表。选择 From list 可从下拉列表中选择表,或选择 By Name 手动输入表名。
- 返回全部(Return All) : 是否返回所有结果,或仅返回指定数量的记录。
- 限制(Limit) : 当禁用 Return All 时,返回的最大项目数。
- 选择行(Select Rows) : 设置选择行的条件。定义 列(Column)、操作符(Operator) 和 值(Value) 来匹配符合条件的行。如果不设置任何条件,Postgres 将选择所有行。
- 组合条件(Combine Conditions) : 如何组合 Select Rows 中的多个条件。AND 表示所有条件都必须为真,OR 表示至少一个条件为真即可。
- 排序(Sort) : 选择如何对选中的行进行排序。可以从列表中选择 列(Column) 或通过 ID 指定,并选择排序 方向(Direction)。
选择选项(Select options)#
- 连接超时(Connection Timeout) : 尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection) : 在认定空闲连接可被关闭前等待的秒数。
- 查询批处理(Query Batching) : 向数据库发送查询的方式:
- 单个查询(Single Query) : 对所有传入项执行一条查询。
- 独立执行(Independently) : 对每个执行中的传入项分别执行一条查询。
- 事务(Transaction) : 在事务中执行所有查询。如果发生错误,Postgres 将回滚所有更改。
- 输出列(Output Columns) : 选择要输出的列。可以从可用列的列表中选择,或使用 表达式(expressions) 指定列 ID。
- 大数值输出格式(Output Large-Format Numbers As) : 指定
NUMERIC和BIGINT类型列的输出格式:- 数字(Numbers) : 用于标准数值。
- 文本(Text) : 如果预期数值长度超过 16 位,请使用此选项。否则数值可能会出错。
更新#
使用此操作来更新表中的行。 输入以下参数:
- 连接凭据:创建或选择一个现有的 PostgreSQL 凭据。
- 操作:选择 Update(更新)。
- Schema(模式):选择包含目标表的 schema。选择 From list(从列表中选择) 以从下拉列表中选取 schema,或选择 By Name(按名称) 手动输入 schema 名称。
- Table(表):选择你要操作的表。选择 From list(从列表中选择) 以从下拉列表中选取表,或选择 By Name(按名称) 手动输入表名。
- 列映射模式(Mapping Column Mode):如何将列名与传入的数据进行映射:
- 手动映射每一列(Map Each Column Manually):为每一列选择要使用的值。
- 自动映射(Map Automatically):自动将传入数据映射到 PostgreSQL 中匹配的列名。为此功能正常工作,传入数据的字段名称必须与 PostgreSQL 中的列名完全一致。如有需要,可在此节点前使用 编辑字段(设置)节点(edit fields (set) node) 调整数据格式。
更新选项#
- 连接超时(Connection Timeout):尝试连接数据库的秒数。
- 延迟关闭空闲连接(Delay Closing Idle Connection):等待多少秒后才将空闲连接视为可关闭状态。
- 查询批处理(Query Batching):向数据库发送查询的方式:
- 单条查询(Single Query):对所有传入项执行一条查询。
- 独立执行(Independently):对每次执行中的每个传入项分别执行一条查询。
- 事务执行(Transaction):在事务中执行所有查询。如果发生错误,PostgreSQL 将回滚所有更改。
- 输出列(Output Columns):选择要输出的列。可以从可用列的列表中选择,或使用 表达式(expressions) 指定列 ID。
- 大数值输出格式(Output Large-Format Numbers As):
NUMERIC和BIGINT列的输出格式:- 数字(Numbers):适用于标准数值。
- 文本(Text):如果你预期数值长度超过 16 位,请使用此选项。否则,长数字可能会出错。
- 将空字符串替换为 NULL(Replace Empty Strings with NULL):是否在输入时将空字符串替换为 NULL。此选项在处理从电子表格软件导出的数据时可能很有用。
模板与示例#
与 PostgreSQL 数据库对话 由 KumoHQ 提供 查看模板详情
利用 AI 图像生成从热门趋势创建 Instagram 内容 由 mustafa kendigüzel 提供 查看模板详情
AI 客户支持助手 · 支持 WhatsApp · 适用于任何业务场景 由 Matt F. 提供 查看模板详情
浏览 Postgres 集成模板,或 搜索所有模板
相关资源#
n8n 为 Postgres 提供了触发器节点(trigger node)。你可以在此处查阅 触发器节点文档。
使用查询参数#
在创建用于 Postgres 数据库的查询时,你可以在 选项(Options) 区域中使用 查询参数(Query Parameters) 字段将数据注入到查询语句中。n8n 会对查询参数中的数据进行安全处理(sanitization),从而防止 SQL 注入攻击。
例如,你想通过邮箱地址查找某个人。假设有以下输入数据:
1
2
3
4
5
6
7
8
9
10
11
12| ``` [ { "email":"alex@example.com", "name":"Alex", "age":21}, { "email":"jamie@example.com", "name":"Jamie", "age":33} ]
---|---
你可以编写如下查询:1
| ```
SELECT * FROM $1:name WHERE email = $2;
---|---
然后在 **查询参数 (Query Parameters)** 中提供要使用的字段值。你可以提供固定值或表达式。在此示例中,请使用表达式,以便节点可以依次从每个输入项中提取电子邮件地址:1 2
| ```
// users 是一个示例表名
{{['users',$json.email]}}---|---
常见问题
对于常见问题或错误及其建议解决方案,请参考 常见问题。