N8N中文教程
集成节点/Built in_nodes/Actions/Postgres

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:永久删除表的数据和结构。

删除选项#

  • 级联(Cascade):是否同时删除依赖该表的所有对象(如视图和序列)。此选项在使用 TruncateDrop 命令时可用。
  • 连接超时(Connection Timeout):尝试连接数据库的秒数。
  • 延迟关闭空闲连接(Delay Closing Idle Connection):在认定空闲连接可以关闭之前等待的秒数。
  • 查询批处理(Query Batching):向数据库发送查询的方式:
    • 单个查询(Single Query):对所有传入项目执行一条查询。
    • 独立执行(Independently):对每个传入的执行项分别执行一条查询。
    • 事务执行(Transaction):将所有查询放在一个事务中执行。如果发生错误,Postgres 会回滚所有更改。
  • 大数值输出格式(Output Large-Format Numbers As)NUMERICBIGINT 列的输出格式:
    • 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):指定 NUMERICBIGINT 列的输出格式:
    • 数字(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):指定 NUMERICBIGINT 列的输出格式:
    • 数字(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):指定 NUMERICBIGINT 列的输出格式:
    • 数字(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) : 指定 NUMERICBIGINT 类型列的输出格式:
    • 数字(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)NUMERICBIGINT 列的输出格式:
    • 数字(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]}}

---|---

常见问题

对于常见问题或错误及其建议解决方案,请参考 常见问题。