Saltar al contenido principal

Consultas SQL

En un conector de base de datos SQL, una entidad puede leer de una consulta en lugar de una tabla. Úsalo cuando los datos que el portal necesita están repartidos en más de una tabla, o cuando quieres elegir las columnas y las filas con precisión.

Entidad leída por una consulta SQL

En el workspace Aurora Imóveis, la entidad Contrato une dos tablas de la base de alquileres — los contratos y los inmuebles — en una sola consulta:

SELECT c.id, c.codigo, i.descricao AS imovel, i.endereco, c.inicio, c.fim,
c.valor_aluguel, c.status, c.cpf_inquilino
FROM contratos c
JOIN imoveis i ON i.id = c.imovel_id
WHERE c.excluido_em IS NULL

Cada columna del resultado se convierte en un campo: imovel y endereco vienen de la tabla de inmuebles, el resto viene del contrato. El WHERE deja fuera los contratos eliminados.

Crear una entidad con SQL​

  1. En Datos › Entidades, haz clic en Nueva entidad.
  2. En Conexión, elige el conector de base de datos y abre la pestaña SQL.
  3. Escribe la consulta. El editor completa nombres de tablas y columnas con Ctrl/Cmd + Space.
  4. Haz clic en Buscar datos (o Ctrl/Cmd + Enter). La plataforma ejecuta la consulta, trae una muestra y arma un campo por cada columna.
  5. Revisa la entidad como cualquier otra: nombre, clave, campos, Identificador, Título y ID del titular. En Contrato, el identificador es id, el título es codigo y el titular es cpf_inquilino, comparado como CPF/CNPJ.
  6. Haz clic en Crear entidad con N campos.

La consulta queda registrada en el Resumen de la entidad, en Consulta SQL.

Reglas de la consulta​

  • Solo lectura: la consulta debe empezar con SELECT o WITH.
  • Una consulta por vez: sin ; en el medio.
  • Rápida: una consulta que tarda más de 15 segundos se interrumpe. Prefiere columnas con índice en el JOIN y en el WHERE.

Además, la sesión en la base de datos se abre en modo de lectura cuando la base lo permite. Aun así, conéctate con un usuario que solo tenga permiso de lectura.

Consejos​

  • Trae el titular en una columna. Por ella cada registro queda con su cliente — en Contrato, cpf_inquilino. Sin titular, ningún usuario del portal ve los registros.
  • Trae un identificador único. Una columna que no se repite (como c.id) permite que la sincronización reconozca cada registro de una vez a otra.
  • Ponles nombres claros a las columnas con AS (i.descricao AS imovel): el nombre de la columna se convierte en la clave del campo.
  • Filtra en el WHERE, y no después: lo que la consulta no trae no ocupa espacio ni tiempo de sincronización.

Cómo funciona la sincronización​

Una entidad por SQL sincroniza en la programación del conector (o solo cuando lo pidas, en el modo Manual). Cada sincronización ejecuta la consulta completa: los registros nuevos entran, los modificados se actualizan y los que la consulta ya no trae salen de la entidad. En Lectura del sync, eliges cuántas filas lee la sincronización cada vez (el predeterminado es 500).

El modo Cuando el usuario accede no vale para las consultas SQL. Consulta Sincronización de las entidades.