This page describes Calíope 1.5, the version we are building right now. 1.4 is finished and in App Review, and the store serves 1.3 on the Mac and 1.2 on iPad. The changelog says which version each feature landed in.

Adds an “Open in Calíope” button to every topic. It only works with the app installed.

Catalogs

Browse Catalogs

Navigate tables, views, indexes, columns, routines, triggers, and events.

Where it is: Workspace › Tools › Catalogs

Open Catalogs from the workspace navigation bar. Select a database in the top selector. The sub-tabs display the different categories of objects.

Keywords: catalogs, objects, tables, views, indexes, routines

View and Edit Object DDL

Display the CREATE TABLE, CREATE VIEW, or CREATE PROCEDURE and edit it interactively.

Where it is: Catalogs › right-click › View DDL

Right-click on any object in the catalogs list and select View DDL. The bottom panel shows the full DDL with syntax highlighting and text selection on all three.

Editing the DDL:
Press Open in ItemEditor (button at the top of the DDL panel) to open the editor in a modal sheet with the DDL pre-loaded:

- macOS: SQLTextEditor with syntax highlighting and full text manipulation.
- iPad: TextEditor with monospaced font and touch keyboard.

Modify the DDL as needed and press Apply to send it to the server. The Reset button discards your changes and reverts to the original DDL. If the ALTER or CREATE fails, a red message appears in the bottom bar with the MySQL error.

Available on macOS, iPad and iPhone.

Keywords: DDL, CREATE TABLE, ALTER, definition, structure, schema, edit, ItemEditor, Apply

Create New Table

Create a table directly from the Catalogs toolbar.

Where it is: Catalogs › New table

In the Catalogs toolbar, use the New table button to open the Table Builder in a new tab. You can also open the context menu on an existing table — right-click on macOS, press and hold on iPad — and choose Design table to edit it.

The builder is divided into four sections accessible from its tab bar:

- Columns — define the name, data type, and constraints for each column. Select a row in the list to edit its properties in the panel below (Identification, Constraints, Default value, Character set).
- Indexes — manage PRIMARY, UNIQUE, INDEX, and FULLTEXT indexes.
- Foreign keys — configure relationships between tables with ON DELETE/ON UPDATE actions.
- Options — adjust the engine (ENGINE), character set, and table comment.

The SQL Preview section at the bottom shows the DDL that will be executed in real time. Click Create table (or Apply changes in edit mode) to send the DDL to the server.

Keywords: new table, create table, create, DDL, builder, columns, indexes, foreign keys

Create Views, Indexes, Routines, Triggers, and Events

Access the visual editors for each object type from the toolbar.

Where it is: Catalogs › New view / New index / New routine / New trigger / New event

The Catalogs toolbar includes dedicated buttons to create each object type:

- New view — opens the view editor
- New index — opens the index editor
- New routine — opens the function and stored procedure editor
- New trigger — opens the trigger editor
- New event — opens the MySQL event scheduler editor

Each editor generates the corresponding DDL (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE, etc.) and executes it on the server upon confirmation.

Keywords: view, index, routine, trigger, event, create, DDL, stored procedure

Edit Views, Routines, Triggers, and Events

Modify existing objects with the visual editor or directly in the SQL editor.

Where it is: Catalogs › right-click › Edit (visual form) / Open in ItemEditor

Open the context menu on a view, routine, trigger, or event in its corresponding Catalogs tab — right-click on macOS, press and hold on iPad. Besides View DDL, it offers two ways to edit:

- Edit (visual form) — opens the graphical editor with pre-filled fields
- Open in ItemEditor — opens the full DDL of the object in the SQL editor for manual modification

Changes made in the visual form generate an ALTER or DROP + CREATE depending on the object type.

Keywords: edit view, edit routine, edit trigger, edit event, form, ItemEditor

Populate Table with Dummy Data

Automatically generate test rows for a table.

Where it is: Catalogs › right-click › Populate with dummy data

Open the context menu on a table in the Tables tab of Catalogs — right-click on macOS, press and hold on iPad — and select Populate with dummy data. Calíope will generate sample INSERT statements adapted to the table's column types.

Keywords: dummy data, seed, test data, populate, fake data

Read-Only Mode

Prevents accidental modifications to catalog objects.

Where it is: Catalogs › Read only

Enable the Read-only toggle in the Catalogs toolbar to disable all create and delete buttons. Useful when exploring a production database.

Keywords: read only, read-only, protect, production

View Editor

Create or modify a MySQL view with algorithm, security, and check options.

Where it is: Catalogs › New view / Edit view

The View Editor opens when you press New view, or from the context menu of an existing view — right-click on macOS, press and hold on iPad — with Edit (visual form). It automatically generates the CREATE [OR REPLACE] VIEW DDL.

Available fields:

- Name — name of the view in the selected database.
- OR REPLACE (toggle) — when enabled, the generated DDL includes OR REPLACE to replace the view if it already exists without dropping it first.
- Algorithm — controls how MySQL processes the view:
- UNDEFINED (default) — MySQL chooses the optimal algorithm.
- MERGE — merges the view query with the outer query. More efficient.
- TEMPTABLE — materializes the view into a temporary table before applying external filters.
- SQL SECURITY — defines the privileges under which the view executes:
- DEFINER (default) — executes with the privileges of the user who created it.
- INVOKER — executes with the privileges of the user querying it.
- CHECK OPTION — validates that rows modified through the view remain visible in it:
- LOCAL — only checks the condition of this view.
- CASCADED — also checks conditions of underlying views.
- SQL SELECT — the text editor with the SELECT query that defines the view's content.

Press Apply to execute the DDL on the server.

Keywords: view, CREATE VIEW, OR REPLACE, algorithm, MERGE, TEMPTABLE, SQL SECURITY, DEFINER, INVOKER, CHECK OPTION, view editor

Routine and Function Editor

Create or modify stored procedures and functions with a visual interface.

Where it is: Catalogs › New routine / Edit routine

The Routine Editor opens when you press New routine or edit an existing routine from the Routines tab of Catalogs. It generates the CREATE OR REPLACE PROCEDURE or CREATE OR REPLACE FUNCTION DDL.

Available fields:

- Name — name of the procedure or function.
- Type — select between PROCEDURE (procedure) or FUNCTION (function).
- Parameters — add parameters with the + button. Each parameter has:
- Mode: IN (input), OUT (output), INOUT (input and output). Only available for procedures.
- Name of the parameter.
- Data type (e.g. INT, VARCHAR(100), DATETIME).
- Return type (functions only) — the data type returned by the function (e.g. INT, VARCHAR(255)).
- Deterministic — enables DETERMINISTIC if the function always returns the same result for the same input parameters. Important for replication and query caching.
- Data access — declares the routine's behavior regarding the database:
- CONTAINS SQL — may contain SQL but does not read or write data.
- NO SQL — contains no SQL statements.
- READS SQL DATA — reads data but does not modify it.
- MODIFIES SQL DATA — may insert, update, or delete data.
- Body — text editor with the SQL code of the routine body (between BEGIN and END).

Press Apply to execute the DDL on the server.

Keywords: routine, procedure, function, PROCEDURE, FUNCTION, parameters, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION

Trigger Editor

Create or modify MySQL triggers associated with a table.

Where it is: Catalogs › New trigger / Edit trigger

The Trigger Editor opens when you press New trigger in the Catalogs toolbar, or from the context menu of an existing trigger — right-click on macOS, press and hold on iPad — with Edit (visual form). The schema tree does not open it: its context menu only offers SELECT * FROM, Import data… and Build WHERE….

Available fields:

- Name — name of the trigger.
- Timing — when the trigger fires relative to the operation:
- BEFORE — executes before the operation. Allows modifying NEW values before they are written.
- AFTER — executes after the operation.
- Event — the operation that fires the trigger:
- INSERT — when a row is inserted.
- UPDATE — when a row is updated.
- DELETE — when a row is deleted.
- Body — text editor with the trigger code. The placeholder includes comments with the NEW.column (new value) and OLD.column (previous value) references:
- NEW available in INSERT and UPDATE triggers.
- OLD available in UPDATE and DELETE triggers.

Press Apply to execute the DDL on the server.

Note: MySQL only allows one trigger per timing + event + table combination. If a BEFORE INSERT trigger already exists on the table, you cannot create another with the same combination.

Keywords: trigger, BEFORE, AFTER, INSERT, UPDATE, DELETE, NEW, OLD, CREATE TRIGGER, trigger editor

Event Scheduler Editor

Create or modify MySQL Event Scheduler events.

Where it is: Catalogs › New event / Edit event

The Event Editor opens when you press New event in the Catalogs toolbar or edit an existing event. Requires the MySQL Event Scheduler to be enabled (SET GLOBAL event_scheduler = ON).

Available fields:

- Name — name of the event.
- Status — controls whether the event is active:
- ENABLE — the event executes according to its schedule.
- DISABLE — the event is paused.
- SLAVESIDE_DISABLED — disabled on a replication replica.
- Schedule type:
- One-time (AT) — executes at a specific date and time. Use the date/time picker to set the moment.
- Recurring (EVERY) — repeats every N time units. Configure the number and unit (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR).
- Start date (recurring) — when the recurring event begins executing.
- End date (recurring, optional) — enable the toggle to define when it stops executing.
- Body — SQL code executed by the event. Can be a BEGIN … END block with multiple statements.

Press Apply to execute the DDL on the server.

Keywords: event, event scheduler, CREATE EVENT, ENABLE, DISABLE, AT, EVERY, recurring, scheduler, cron, schedule

Index Editor

Create an index on a table with configurable type, method, and columns.

Where it is: Catalogs › New index / Create index

The Index Editor opens from the Indexes tab of Catalogs: with a table selected, the New index button in the toolbar; on an index that already exists, the context menu — right-click on macOS, press and hold on iPad — with Edit (visual form). The schema tree does not open it.

Available fields:

- Name — name of the index on the table.
- Type:
- INDEX — standard index, allows duplicates.
- UNIQUE — unique index, rejects duplicate values in the indexed column or column combination.
- FULLTEXT — full-text search. In MySQL and MariaDB, only for CHAR, VARCHAR, or TEXT columns and the MyISAM/InnoDB engine (MySQL 5.6+).
- SPATIAL — geospatial data. In MySQL and MariaDB, only for spatial-type columns and the MyISAM engine.
- Method (available for INDEX and UNIQUE):
- BTREE — B-tree, the most common method. Supports range comparisons, LIKE 'abc%', ORDER BY.
- HASH — hash table, only supports exact equality comparisons. Available with the MEMORY engine.
- Columns — add the columns that make up the index with the name field and, optionally, the prefix length (number of characters to index; useful for long TEXT or VARCHAR columns).

The primary key is managed from the Columns tab of the Table Builder, not from this editor.

Press Apply to execute ALTER TABLE … ADD INDEX on the server.

Keywords: index, CREATE INDEX, UNIQUE, FULLTEXT, SPATIAL, BTREE, HASH, columns, prefix, ALTER TABLE, index editor