Logo de QANode

Nodo PostgreSQL

El nodo PostgreSQL permite ejecutar consultas y operaciones en una base de datos PostgreSQL. Ofrece tanto un generador de consultas visual como la opción de escribir SQL personalizado.


Descripción General

PropiedadValor
Tipopostgres-query
CategoríaBase de Datos
Color🟢 Verde (#22c55e)
Entradain
Salidaout

Conexión

Usando Credenciales Guardadas (Recomendado)

Seleccione una credencial de tipo PostgreSQL en el campo Credencial. La credencial contiene toda la información de conexión.

Configuración Manual

CampoTipoDescripción
Connection StringstringURI completa (alternativa)
HoststringDirección del servidor
PuertonumberPuerto (predeterminado: 5432)
Base de DatosstringNombre de la base de datos
UsuariostringUsuario de conexión
ContraseñastringContraseña de conexión
SSLbooleanUsar conexión SSL

Connection String:

postgresql://usuario:contraseña@host:5432/basedatos?sslmode=require

Modos de Consulta (Presets)

Custom SQL

Escriba SQL libremente con soporte a parámetros.

CampoTipoDescripción
SQLstringConsulta SQL (soporta {{ }})
ParámetrosarrayValores para los marcadores $1, $2, etc.

Ejemplo:

SELECT * FROM users WHERE email = $1 AND active = $2

Parámetros: ["juan@ejemplo.com", true]

Seguridad: Siempre use parámetros ($1, $2) en lugar de concatenar valores directamente en el SQL. Esto previene la inyección SQL.


SELECT (Generador Visual)

Construya consultas SELECT sin escribir SQL:

CampoTipoDescripción
TablastringTabla de origen
ColumnasarrayColumnas a seleccionar (vacío = todas)
Condiciones WHEREarrayFiltros
ORDER BYobjectColumna y dirección de ordenamiento
LIMITnumberLímite de registros

Condiciones WHERE:

CampoOperadorValor
email=juan@ejemplo.com
age>18
nameLIKE%García%

EXISTS

Verifica si existe al menos un registro que coincida con los criterios.

CampoTipoDescripción
TablastringTabla
Condiciones WHEREarrayCriterios de búsqueda

Retorna rowCount: 1 si existe, rowCount: 0 si no existe.


COUNT

Cuenta los registros que coinciden con los criterios.

CampoTipoDescripción
TablastringTabla
Condiciones WHEREarrayCriterios de conteo

ASSERT

Verifica si un valor en la base de datos coincide con el esperado. Ideal para validaciones de datos.

CampoTipoDescripción
TablastringTabla
ColumnastringColumna a verificar
OperadorstringOperación de comparación
ValorstringValor esperado
Condiciones WHEREarrayFiltros para localizar el registro

INSERT

Inserta nuevos registros.

CampoTipoDescripción
TablastringTabla de destino
ValoresarrayPares columna-valor

Ejemplo:

ColumnaValor
nameMaria
emailmaria@ejemplo.com
activetrue

UPDATE

Actualiza registros existentes.

CampoTipoDescripción
TablastringTabla
SetsarrayPares columna-valor a actualizar
Condiciones WHEREarrayFiltros

DELETE

Elimina registros.

CampoTipoDescripción
TablastringTabla
Condiciones WHEREarrayFiltros (obligatorio por seguridad)

Outputs

OutputTipoDescripción
rowsarrayArray de registros retornados
rowCountnumberNúmero de registros afectados/retornados

Accediendo a los Outputs

// Todos los registros
{{ steps.query.outputs.rows }}

// Primer registro
{{ steps.query.outputs.rows[0] }}

// Campo específico del primer registro
{{ steps.query.outputs.rows[0].name }}  →  "Juan"
{{ steps.query.outputs.rows[0].email }}  →  "juan@ejemplo.com"

// Conteo
{{ steps.query.outputs.rowCount }}  →  5

Ejemplos Prácticos

Validar datos después de la creación vía API

[HTTP Request: POST /api/users → body: { "name": "Juan" }]
    │
    ▼
[PostgreSQL: SELECT * FROM users WHERE name = 'Juan']
    │
    ▼
[If: {{ steps.query.outputs.rowCount }} > 0]
    │ true → [Log: "Usuario creado exitosamente en la base de datos"]
    │ false → [Stop and Fail]

Preparar datos para pruebas

[PostgreSQL: INSERT INTO test_data (key, value) VALUES ('token', 'abc123')]
    │
    ▼
[HTTP Request: GET /api/verify?token={{ steps.insert.outputs.rows[0].token }}]

Limpiar datos después de las pruebas

[... pruebas ...]
    │
    ▼
[PostgreSQL: DELETE FROM test_data WHERE created_by = 'automated-test']

Consejos

  • Use credenciales guardadas para gestionar conexiones de forma centralizada
  • Use parámetros ($1, $2) en SQL personalizado para prevenir inyección SQL
  • El generador de consultas visual es ideal para operaciones simples y es menos propenso a errores de sintaxis
  • Use expresiones en los valores: {{ steps.api.outputs.json.id }} para usar datos de nodos anteriores
  • Pruebe la conexión antes de ejecutar el flujo usando el botón de prueba en la pantalla de credenciales