Esta página describe Calíope 1.5, la versión que estoy construyendo ahora mismo. La 1.4 ya está en la App Store para Mac, iPad, iPhone, Apple Watch, Apple TV y Apple Vision Pro. El changelog dice en qué versión llegó cada función.
Añade un botón «Abrir en Calíope» a cada tema. Sólo funciona con la app instalada.
Navega tablas, vistas, índices, campos, rutinas, triggers y eventos.
Dónde está: Espacio de Trabajo › Herramientas › Catálogos
Abre Catálogos desde la barra de navegación del workspace. Selecciona una base de datos en el selector superior. Las sub-pestañas muestran las diferentes categorías de objetos.
Muestra el CREATE TABLE, CREATE VIEW o CREATE PROCEDURE y permite editarlo y aplicarlo.
Dónde está: Catálogos › clic derecho › Ver DDL
Haz clic derecho sobre cualquier objeto en la lista de catálogos y selecciona Ver DDL. El panel inferior muestra el DDL completo con sintaxis coloreada y selección de texto en las tres.
Editar el DDL:
Pulsa Abrir en ItemEditor (botón superior del panel DDL) para abrir el editor en una hoja modal con el DDL pre-cargado:
- macOS: editor SQLTextEditor con highlighting y resaltado de sintaxis.
- iPad:TextEditor con fuente monoespaciada y teclado táctil.
Modifica el DDL libremente y pulsa Aplicar para enviarlo al servidor. El botón Restablecer descarta tus cambios y vuelve al DDL original. Si el ALTER o CREATE falla, aparece un mensaje rojo en la barra inferior con el error del servidor.
Crea una tabla directamente desde la barra de herramientas de Catálogos.
Dónde está: Catálogos › Nueva tabla
En la barra de herramientas de Catálogos usa el botón Nueva tabla para abrir el Constructor de tablas en una nueva pestaña. También puedes abrir el menú contextual de una tabla existente —clic derecho en macOS, mantener pulsado en iPad— y elegir Diseñar tabla para editarla.
El constructor se divide en cuatro secciones accesibles desde su barra de pestañas:
- Columnas — define el nombre, tipo de dato y restricciones de cada columna. Selecciona una fila de la lista para editar sus propiedades en el panel inferior (Identificación, Restricciones, Valor por defecto, Juego de caracteres).
- Índices — gestiona índices PRIMARY, UNIQUE, INDEX y FULLTEXT.
- Claves foráneas — configura relaciones entre tablas con sus acciones ON DELETE/ON UPDATE.
- Opciones — ajusta el motor (ENGINE), juego de caracteres y comentario de tabla.
La sección Vista previa SQL en la parte inferior muestra en tiempo real el DDL que se ejecutará. Pulsa Crear tabla (o Aplicar cambios en modo edición) para enviar el DDL al servidor.
Accede a los editores visuales de cada tipo de objeto desde la barra de herramientas.
Dónde está: Catálogos › Nueva vista / Nuevo índice / Nueva rutina / Nuevo trigger / Nuevo evento
La barra de herramientas de Catálogos incluye botones dedicados para crear cada tipo de objeto:
- Nueva vista — abre el editor de vistas
- Nuevo índice — abre el editor de índices
- Nueva rutina — abre el editor de funciones y procedimientos almacenados
- Nuevo trigger — abre el editor de disparadores
MySQLMariaDBAurora
- Nuevo evento — en la pestaña Eventos, abre el editor de eventos del planificador
SQL ServerPostgreSQL
No hay pestaña Eventos ni Nuevo evento: el servidor no tiene planificador de eventos.
Cada editor genera el DDL correspondiente (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE, etc.) en el dialecto del servidor al que estás conectado, y lo ejecuta en el servidor al confirmar. Cada uno ofrece sólo lo que ese servidor sabe escribir: los temas siguientes dicen qué cambia de un motor a otro.
Abre el menú contextual de una vista, rutina, trigger o evento en su pestaña correspondiente de Catálogos —clic derecho en macOS, mantener pulsado en iPad—. Además de Ver DDL, ofrece dos formas de editar:
- Editar (formulario visual) — abre el editor gráfico con los campos pre-rellenados
- Abrir en ItemEditor — abre el DDL completo del objeto en el editor SQL para modificación manual
Los cambios en el formulario visual generan un ALTER o DROP + CREATE según el tipo de objeto.
Genera filas de prueba automáticamente para una tabla.
Dónde está: Catálogos › clic derecho › Poblar con datos dummy
Abre el menú contextual de una tabla en la pestaña Tablas de Catálogos —clic derecho en macOS, mantener pulsado en iPad— y selecciona Poblar con datos dummy. Calíope generará INSERT de ejemplo adaptados a los tipos de columnas de la tabla.
Palabras clave: datos dummy, seed, test data, poblar, ficticios
Previene modificaciones accidentales de objetos del catálogo.
Dónde está: Catálogos › Solo lectura
Activa el interruptor Solo lectura en la barra de Catálogos para deshabilitar todos los botones de creación y eliminación. Útil al explorar una base de datos de producción.
Palabras clave: solo lectura, read only, proteger, producción
Crea o modifica una vista; las opciones que ofrece dependen del motor.
Dónde está: Catálogos › Nueva vista / Editar vista
El Editor de vistas se abre al pulsar Nueva vista, o desde el menú contextual de una vista existente —clic derecho en macOS, mantener pulsado en iPad— con Editar (formulario visual). Genera el DDL CREATE VIEW automáticamente.
Campos disponibles:
- Nombre — nombre de la vista en la base de datos seleccionada.
- El interruptor de reemplazo — si está activo, el DDL generado reemplaza la vista si ya existe, sin necesidad de eliminarla antes. El interruptor se llama como la cláusula que escribe:
MySQLMariaDBAuroraPostgreSQL
OR REPLACE — CREATE OR REPLACE VIEW.
SQL Server
OR ALTER — CREATE OR ALTER VIEW.
MySQLMariaDBAurora
- Algoritmo — controla cómo procesa el servidor la vista:
- UNDEFINED (por defecto) — el servidor elige el algoritmo óptimo.
- MERGE — combina la consulta de la vista con la consulta externa. Más eficiente.
- TEMPTABLE — materializa la vista en una tabla temporal antes de aplicar filtros externos.
- SQL Security — define los privilegios con los que se ejecuta la vista:
- DEFINER (por defecto) — se ejecuta con los privilegios del usuario que la creó.
- INVOKER — se ejecuta con los privilegios del usuario que la consulta.
- CHECK OPTION — valida que las filas modificadas a través de la vista sigan siendo visibles en ella:
- LOCAL — solo verifica la condición de esta vista.
- CASCADED — verifica también las condiciones de vistas subyacentes.
- SQL SELECT — el editor de texto con la consulta SELECT que define el contenido de la vista.
Pulsa Aplicar para ejecutar el DDL en el servidor.
SQL ServerPostgreSQL
No hay Algoritmo ni SQL Security: la hoja no los enseña.
SQL Server
WITH CHECK OPTION tiene una sola forma, la que describe CASCADED: elegir LOCAL escribe ésa, y la hoja lo dice.
Palabras clave: vista, view, CREATE VIEW, OR REPLACE, algoritmo, MERGE, TEMPTABLE, SQL SECURITY, DEFINER, INVOKER, CHECK OPTION, editor de vistas
Crea o modifica procedimientos almacenados y funciones con interfaz visual.
Dónde está: Catálogos › Nueva rutina / Editar rutina
El Editor de rutinas se abre al pulsar Nueva rutina o al editar una rutina existente desde la pestaña Rutinas de Catálogos. Genera el DDL que crea el procedimiento o la función, o reemplaza el que tiene ese nombre:
MySQLMariaDBAurora
Dos sentencias, una detrás de otra: DROP PROCEDURE IF EXISTS y CREATE PROCEDURE (o DROP FUNCTION IF EXISTS y CREATE FUNCTION). MySQL no tiene CREATE OR REPLACE para rutinas, así que la que existe se borra primero: si la creación falla, ya no está.
PostgreSQL
CREATE OR REPLACE PROCEDURE o CREATE OR REPLACE FUNCTION.
SQL Server
CREATE OR ALTER PROCEDURE o CREATE OR ALTER FUNCTION.
Campos disponibles:
- Nombre — nombre del procedimiento o función.
- Tipo — selecciona entre PROCEDURE (procedimiento) o FUNCTION (función).
- Parámetros — agrega parámetros con el botón +. Cada parámetro tiene:
- Modo: IN (entrada), OUT (salida), INOUT (entrada y salida). Solo disponible para procedimientos.
- Nombre del parámetro.
- Tipo de dato (ej. INT, VARCHAR(100), DATETIME).
- Tipo de retorno (solo para funciones) — el tipo de dato que devuelve la función (ej. INT, VARCHAR(255)).
- Cuerpo — editor de texto con el código de la rutina. Empieza como un bloque BEGIN … END vacío en el que escribir.
La sección Opciones enseña sólo lo que el servidor sabe escribir:
MySQLMariaDBAurora
- Determinista — escribe DETERMINISTIC si la rutina devuelve siempre el mismo resultado para los mismos parámetros de entrada. Importante para la replicación.
- Acceso a datos — declara el comportamiento de la rutina respecto a la base de datos:
- CONTAINS SQL — puede contener SQL pero no lee ni escribe datos.
- NO SQL — no contiene sentencias SQL.
- READS SQL DATA — lee datos pero no los modifica.
- MODIFIES SQL DATA — puede insertar, actualizar o eliminar datos.
PostgreSQL
Sólo Determinista, y sólo en funciones: escribe IMMUTABLE —la función devuelve siempre el mismo resultado para los mismos argumentos y no lee la base de datos—. Un procedimiento no tiene esa opción, y no hay Acceso a datos: PostgreSQL no tiene esa cláusula. El cuerpo se escribe en PL/pgSQL (LANGUAGE plpgsql).
SQL Server
No hay sección Opciones: SQL Server deduce por su cuenta si una función es determinista, y no tiene cláusula de acceso a datos. Un parámetro que no es IN se escribe @nombre tipo OUTPUT, y la @ se añade si no la pones.
Pulsa Aplicar para ejecutar el DDL en el servidor.
Palabras clave: rutina, procedimiento, función, PROCEDURE, FUNCTION, parámetros, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION
Dónde está: Catálogos › Nuevo trigger / Editar trigger
El Editor de triggers se abre al pulsar Nuevo trigger en la barra de herramientas de Catálogos, o desde el menú contextual de un trigger existente —clic derecho en macOS, mantener pulsado en iPad— con Editar (formulario visual). El árbol de esquema no lo abre: su menú contextual sólo ofrece SELECT * FROM, Importar datos… y Construir WHERE….
Campos disponibles:
- Nombre — nombre del trigger.
- Timing — cuándo se dispara el trigger respecto a la operación:
MySQLMariaDBAuroraPostgreSQL
- BEFORE — se ejecuta antes de la operación. Permite modificar los valores de NEW antes de escribirlos.
- AFTER — se ejecuta después de la operación.
SQL Server
- AFTER — se ejecuta después de la operación.
- INSTEAD OF — sustituye la operación por el código del trigger.
No hay BEFORE.
- Evento — la operación que dispara el trigger:
- INSERT — al insertar una fila.
- UPDATE — al actualizar una fila.
- DELETE — al eliminar una fila.
- Cuerpo — editor de texto con el código del trigger. El cuerpo de partida dice, en comentarios, dónde están las filas nuevas y las anteriores.
Pulsa Aplicar para ejecutar el DDL en el servidor.
MySQLMariaDBAuroraPostgreSQL
El trigger salta una vez por fila: NEW.columna es el valor nuevo (en INSERT y UPDATE) y OLD.columna el anterior (en UPDATE y DELETE).
PostgreSQL
El código de un trigger vive en una función: Calíope crea la función <nombre>_fn con el cuerpo y el trigger que la llama, FOR EACH ROW. El cuerpo termina en RETURN: en un trigger BEFORE la fila que devuelve es la que se escribe, y NULL se salta la fila. El cuerpo de partida devuelve COALESCE(NEW, OLD), que vale para los tres eventos.
SQL Server
El trigger salta una vez por sentencia, no una vez por fila, y las filas nuevas y las anteriores están en las tablas inserted y deleted, no en NEW y OLD: el cuerpo de partida lo dice.
Crea o modifica eventos del Event Scheduler de MySQL.
Dónde está: Catálogos › Nuevo evento / Editar evento
El Editor de eventos se abre al pulsar Nuevo evento en la barra de herramientas de Catálogos o al editar un evento existente. Requiere que el Event Scheduler de MySQL esté habilitado (SET GLOBAL event_scheduler = ON).
Campos disponibles:
- Nombre — nombre del evento.
- Estado — controla si el evento está activo:
- ENABLE — el evento se ejecuta según su programación.
- DISABLE — el evento está pausado.
- SLAVESIDE_DISABLED — deshabilitado en un esclavo de replicación.
- Tipo de programación:
- Una vez (AT) — se ejecuta en una fecha y hora específica. Usa el selector de fecha/hora para elegir el momento.
- Recurrente (EVERY) — se repite cada N unidades de tiempo. Configura el número y la unidad (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR).
- Fecha de inicio (recurrente) — cuándo empieza a ejecutarse el evento recurrente.
- Fecha de fin (recurrente, opcional) — activa el toggle para definir cuándo deja de ejecutarse.
- Cuerpo — código SQL que ejecuta el evento. Puede ser un bloque BEGIN … END con múltiples sentencias.
Pulsa Aplicar para ejecutar el DDL en el servidor.
Crea un índice en una tabla con tipo, método y columnas configurables.
Dónde está: Catálogos › Nuevo índice / Crear índice
El Editor de índices se abre en la pestaña Índices de Catálogos: con una tabla seleccionada, el botón Nuevo índice de la barra de herramientas; sobre un índice que ya existe, el menú contextual —clic derecho en macOS, mantener pulsado en iPad— con Editar (formulario visual). El árbol de esquema no lo abre.
Campos disponibles:
- Nombre — nombre del índice en la tabla.
- Tipo:
- INDEX — índice normal, permite duplicados.
- UNIQUE — índice único, rechaza valores duplicados en la columna o combinación de columnas indexadas.
MySQLMariaDBAurora
- FULLTEXT — búsqueda de texto completo. Solo para columnas CHAR, VARCHAR o TEXT y motor MyISAM/InnoDB (MySQL 5.6+).
- SPATIAL — datos geoespaciales. Solo para columnas de tipo espacial y motor MyISAM.
MySQLMariaDBAuroraPostgreSQL
- Método (para INDEX y UNIQUE):
- BTREE — árbol B, el método más común. Soporta comparaciones de rango, LIKE 'abc%', ORDER BY.
- HASH — tabla hash, solo soporta comparaciones de igualdad exacta.
MySQLMariaDBAurora
HASH sólo lo respeta el motor MEMORY.
PostgreSQL
Un índice UNIQUE no puede ser HASH, así que con UNIQUE el método es BTREE. Los demás métodos (gin, gist, brin) no se ofrecen.
SQL Server
No hay Método: CREATE INDEX no tiene cláusula USING.
- Columnas — agrega las columnas que componen el índice con el campo de nombre y, opcionalmente, la longitud del prefijo (número de caracteres a indexar; útil para columnas TEXT o VARCHAR largas).
SQL ServerPostgreSQL
No hay índice por prefijo: se indexa la columna entera, y el DDL generado lo dice en un comentario.
La clave primaria se gestiona desde la pestaña Columnas del Constructor de tablas, no desde este editor.
Pulsa Aplicar para ejecutar CREATE INDEX en el servidor.
Palabras clave: índice, index, CREATE INDEX, UNIQUE, FULLTEXT, SPATIAL, BTREE, HASH, columnas, prefijo, ALTER TABLE, editor de índices