QANode Logo

Nó PostgreSQL

O nó PostgreSQL permite executar consultas e operações no banco de dados PostgreSQL. Oferece tanto um query builder visual quanto a opção de escrever SQL customizado.


Visão Geral

PropriedadeValor
Tipopostgres-query
CategoriaBanco de Dados
Cor🟢 Verde (#22c55e)
Entradain
Saídaout

Conexão

Usando Credenciais Salvas (Recomendado)

Selecione uma credencial do tipo PostgreSQL no campo Credencial. A credencial contém todas as informações de conexão.

Configuração Manual

CampoTipoDescrição
Connection StringstringURI completa (alternativa)
HoststringEndereço do servidor
PortanumberPorta (padrão: 5432)
Banco de DadosstringNome do banco
UsuáriostringUsuário de conexão
SenhastringSenha de conexão
SSLbooleanUsar conexão SSL

Connection String:

postgresql://usuario:senha@host:5432/banco?sslmode=require

Modos de Consulta (Presets)

Custom SQL

Escreva SQL livremente com suporte a parâmetros.

CampoTipoDescrição
SQLstringConsulta SQL (suporta {{ }})
ParâmetrosarrayValores para placeholders $1, $2, etc.

Exemplo:

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

Parâmetros: ["joao@exemplo.com", true]

Segurança: Sempre use parâmetros ($1, $2) em vez de concatenar valores diretamente no SQL. Isso previne SQL injection.


SELECT (Visual Builder)

Construa consultas SELECT sem escrever SQL:

CampoTipoDescrição
TabelastringTabela de origem
ColunasarrayColunas a selecionar (vazio = todas)
Condições WHEREarrayFiltros
ORDER BYobjectColuna e direção de ordenação
LIMITnumberLimite de registros

Condições WHERE:

CampoOperadorValor
email=joao@exemplo.com
age>18
nameLIKE%Silva%

EXISTS

Verifica se existe pelo menos um registro que corresponda aos critérios.

CampoTipoDescrição
TabelastringTabela
Condições WHEREarrayCritérios de busca

Retorna rowCount: 1 se existe, rowCount: 0 se não existe.


COUNT

Conta registros que correspondem aos critérios.

CampoTipoDescrição
TabelastringTabela
Condições WHEREarrayCritérios de contagem

ASSERT

Verifica se um valor no banco corresponde ao esperado. Ideal para validações de dados.

CampoTipoDescrição
TabelastringTabela
ColunastringColuna a verificar
OperadorstringOperação de comparação
ValorstringValor esperado
Condições WHEREarrayFiltros para localizar o registro

INSERT

Insere novos registros.

CampoTipoDescrição
TabelastringTabela de destino
ValoresarrayPares coluna-valor

Exemplo:

ColunaValor
nameMaria
emailmaria@exemplo.com
activetrue

UPDATE

Atualiza registros existentes.

CampoTipoDescrição
TabelastringTabela
SetsarrayPares coluna-valor a atualizar
Condições WHEREarrayFiltros

DELETE

Remove registros.

CampoTipoDescrição
TabelastringTabela
Condições WHEREarrayFiltros (obrigatório por segurança)

Outputs

OutputTipoDescrição
rowsarrayArray de registros retornados
rowCountnumberNúmero de registros afetados/retornados

Acessando os Outputs

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

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

// Campo específico do primeiro registro
{{ steps.query.outputs.rows[0].name }}  →  "João"
{{ steps.query.outputs.rows[0].email }}  →  "joao@exemplo.com"

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

Exemplos Práticos

Validar dados após criação via API

[HTTP Request: POST /api/users → body: { "name": "João" }]
    │
    ▼
[PostgreSQL: SELECT * FROM users WHERE name = 'João']
    │
    ▼
[If: {{ steps.query.outputs.rowCount }} > 0]
    │ true → [Log: "Usuário criado com sucesso no banco"]
    │ false → [Stop and Fail]

Preparar dados para teste

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

Limpar dados após teste

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

Dicas

  • Use credenciais salvas para gerenciar conexões de forma centralizada
  • Use parâmetros ($1, $2) em SQL customizado para prevenir SQL injection
  • O query builder visual é ideal para operações simples e é menos propenso a erros de sintaxe
  • Use expressões nos valores: {{ steps.api.outputs.json.id }} para usar dados de nós anteriores
  • Teste a conexão antes de executar o fluxo usando o botão de teste na tela de credenciais