Diese Seite beschreibt Calíope 1.8, die Version, die ich gerade baue. Die 1.7 ist im App Store für Mac, iPad, iPhone, Apple Watch, Apple TV und Apple Vision Pro. Das Changelog sagt, in welcher Version jede Funktion kam.
Fügt jedem Thema einen Button „In Calíope öffnen“ hinzu. Funktioniert nur mit installierter App.
Navigiere Tabellen, Views, Indizes, Felder, Routinen, Trigger und Events.
Wo es zu finden ist: Workspace › Werkzeuge › Kataloge
Öffne Kataloge über die Navigationsleiste des Workspace. Wähl eine Datenbank im oberen Auswahlfeld aus. Die Unter-Tabs zeigen die verschiedenen Objektkategorien.
ClickHouse
Mit ClickHouse gibt es keine Tabs Trigger und Events, und ein Hinweis unter den Tabs sagt, was an ihre Stelle tritt. Indizes heißt Schlüssel: pro Tabelle der Sortierschlüssel, der Partitionsschlüssel, der Primärschlüssel, falls er abweicht, der Stichprobenschlüssel, die Skip-Indizes mit Typ und Granularität und die Projektionen, ohne Kardinalität und ohne Neuer Index. Zwischen Views und Schlüssel liegt Materialisierte Views: Die Liste sagt, wohin jede schreibt —Intern, wenn der Server das Ziel angelegt hat— und wann sie sich aktualisiert, und darunter steht das Blatt der ausgewählten: aus welcher Tabelle sie liest, in welche Tabelle sie schreibt und unter welchem Namen man sie abfragt, wie viel Platz das Ziel belegt und wie viele Zeilen es hat, wann die letzte Zeile geschrieben wurde und, wenn sie sich selbst aktualisiert, ihr Zeitplan, ihr Status und die letzte und nächste Aktualisierung, mit ausgeschriebener Zeitzone. Routinen listet die Funktionen des Benutzers, die Lambdas sind und hier angelegt und bearbeitet werden.
Oracle
Mit Oracle listet die Auswahl Schemas: die mit einem Objekt, das dein Konto sehen kann, plus dein eigenes, auch wenn es leer ist, die von Oracle eingeschlossen (SYS, MDSYS…). Tabellen zeigt die des Benutzers –ohne die internen eines räumlichen Index oder einer materialisierten View–, mit den Zeilen aus der letzten Statistik (NUM_ROWS) und den Typen, wie Oracle sie schreibt (NUMBER(10,0), VARCHAR2(100 CHAR)). Materialisierte Views haben ihren eigenen Reiter, Materialisierte Views: die Tabelle, die ihre Zeilen speichert, welche Tabellen sie lesen, wann und wie sie aktualisiert werden, die letzte Aktualisierung und ob sie aktuell sind, mit Jetzt aktualisieren. Routinen listet Prozeduren, Funktionen und Pakete –mit Spezifikation und Rumpf im DDL-Bereich– und setzt INVALID hinter den Typ dessen, was nicht kompiliert; Trigger setzt DISABLED hinter den, der deaktiviert ist. In Indizes zeigt ein funktionsbasierter Index seinen Ausdruck und ein Domänen- oder auffälliger Index seinen Typ (DOMAIN · MDSYS.SPATIAL_INDEX_V2, NORMAL · INVISIBLE, UNUSABLE). Es gibt einen Reiter mehr, Sequenzen, mit Minimum, Maximum, Schritt, Zyklus, Cache und Nächster auf Platte: der nächste Wert, den der Server schreibt, nicht der zuletzt ausgegebene, der mit Cache bis zu einen Block zurückliegen kann. Events listet die DBMS_SCHEDULER-Jobs des Schemas.
SQL Server
Mit SQL Server steht zwischen Views und IndizesIndizierte Views: Views mit einem eindeutigen gruppierten Index, in dem sie ihre Zeilen speichern. Die Karte der gewählten nennt den Index, wie viel sie belegt, wie viele Zeilen sie hat und aus welchen Tabellen sie liest, und ihr DDL bringt die Indizes dahinter mit; unter Views erscheinen sie nicht mehr, auch wenn der Baum des Editors, das Backup und der Vergleich sie weiter als Views behandeln. Sequenzen listet die des Schemas mit Minimum, Maximum, Schritt, Zyklus, Cache und Zuletzt vergeben: der letzten Zahl, die NEXT VALUE FOR geliefert hat.
Zeigt das CREATE TABLE, CREATE VIEW oder CREATE PROCEDURE an und erlaubt, es zu bearbeiten und anzuwenden.
Wo es zu finden ist: Kataloge › Kontextmenü › DDL anzeigen
Öffne das Kontextmenü —Rechtsklick unter macOS, langes Drücken auf dem iPad— eines beliebigen Objekts in der Katalogliste und wähl DDL anzeigen. Das untere Panel zeigt das vollständige DDL mit farbiger Syntax und Textauswahl auf allen Plattformen.
Das DDL bearbeiten:
Drück auf Im ItemEditor öffnen (obere Schaltfläche des DDL-Panels), um den Editor in einem modalen Blatt mit vorgeladenem DDL zu öffnen. Es ist auf allen Plattformen derselbe Editor, mit Syntaxhervorhebung.
Bearbeite das DDL beliebig und klick auf Anwenden, um es an den Server zu senden. Die Schaltfläche Zurücksetzen verwirft deine Änderungen und kehrt zum ursprünglichen DDL zurück. Schlägt das ALTER oder CREATE fehl, erscheint eine rote Meldung in der unteren Leiste mit dem Fehler des Servers.
Verfügbar unter macOS, iPad, iPhone und Apple Vision Pro.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Oracle
Mit Oracle zeigt der Bereich, was der Server mit DBMS_METADATA.GET_DDL schreibt: zitierte und qualifizierte Namen, EDITIONABLE, wo es zutrifft, die ganze Identität und bei einer Tabelle ihre Indizes, ihre Kommentare und am Ende ihre Fremdschlüssel als ALTER TABLE. Kann dein Konto die DDL eines Objekts in einem anderen Schema nicht lesen –ihm fehlt SELECT_CATALOG_ROLE–, sagt das ein Kommentar, und Im ItemEditor öffnen wird nicht angeboten. Auch Sequenzen haben DDL anzeigen.
Erstellt eine Tabelle direkt über die Werkzeugleiste der Kataloge.
Wo es zu finden ist: Kataloge › Neue Tabelle
Nutz in der Werkzeugleiste der Kataloge die Schaltfläche Neue Tabelle, um den Tabellen-Builder in einem neuen Tab zu öffnen. Du kannst auch das Kontextmenü einer bestehenden Tabelle öffnen — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und Tabelle entwerfen wählen, um sie zu bearbeiten.
Der Builder verteilt die Arbeit auf die Tabs seiner Leiste: Spalten, Indizes, Fremdschlüssel —wo die Engine sie hat— und Optionen. Was jeder Tab mit der Engine deiner Sitzung bietet, erklären die Themen zum Tabellen-Builder.
Der Bereich SQL-Vorschau unten zeigt in Echtzeit das DDL an, das ausgeführt wird. Drück auf Tabelle erstellen (oder Änderungen anwenden im Bearbeitungsmodus), um das DDL an den Server zu senden.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Greif über die Werkzeugleiste auf die visuellen Editoren für jeden Objekttyp zu.
Wo es zu finden ist: Kataloge › Neue View / Neuer Index / Neue Routine / Neuer Trigger / Neues Event
Die Werkzeugleiste der Kataloge enthält eigene Schaltflächen zum Erstellen jedes Objekttyps:
- Neue View — öffnet den View-Editor
- Neuer Index — öffnet den Index-Editor
- Neue Routine — öffnet den Editor für Funktionen und gespeicherte Prozeduren
- Neuer Trigger — öffnet den Trigger-Editor
MySQLMariaDBAurora
- Neues Event — im Tab Events, öffnet den Editor für Events des Schedulers
SQL Server
Mit SQL Server sind Events die Agent-Aufträge, deren Schritt in dieser Datenbank läuft, aufgelistet unter ihrem dbo, und Neues Event legt einen an. In Express, das keinen Agent hat, sagt der Tab, warum er leer ist.
PostgreSQL
Events sind die Jobs der Erweiterung pg_cron und stehen in ihrem Schema, cron: Neues Event plant sie mit cron.schedule. Ohne die Erweiterung sagt der Tab Events, was fehlt.
Jeder Editor generiert das entsprechende DDL (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE usw.) im Dialekt des Servers, mit dem du verbunden bist, und führt es beim Bestätigen auf dem Server aus. Jeder bietet nur an, was dieser Server schreiben kann: Die folgenden Themen sagen, was sich von einer Engine zur anderen ändert.
ClickHouse
Mit ClickHouse gibt es Neue View und Neue Routine, die eine Lambda-Funktion anlegt: kein Neuer Index —der Tab heißt Schlüssel, und ein Skip-Index wird im Tabellen-Designer hinzugefügt—, keinen Neuer Trigger und keinen Tab Events.
Oracle
Mit Oracle gibt es Neue View, Neuer Index, Neue Routine –eine Prozedur oder eine Funktion–, Neuer Trigger und Neues Event, das ein DBMS_SCHEDULER-Job ist. Ein Package wird bearbeitet, aber nicht hier angelegt.
TiDB
Mit TiDB gibt es Neue View und Neuer Index. Es gibt weder Neue Routine noch Neuer Trigger noch einen Reiter Events: TiDB hat keine gespeicherten Routinen, keine Trigger und keinen Event-Scheduler, und Kataloge sagt das in einem Hinweis. Seine Sequenzen stehen im Reiter Sequenzen, mit ihrer DDL.
Bearbeite bestehende Objekte mit dem visuellen Editor oder direkt im SQL-Editor.
Wo es zu finden ist: Kataloge › Kontextmenü › Bearbeiten (visuelles Formular) / Im ItemEditor öffnen
Öffne das Kontextmenü einer View, Routine, eines Triggers oder Events im entsprechenden Tab der Kataloge — Rechtsklick unter macOS, gedrückt halten auf dem iPad. Neben DDL anzeigen bietet es zwei Wege zum Bearbeiten:
- Bearbeiten (visuelles Formular) — öffnet den grafischen Editor mit vorausgefüllten Feldern
- Im ItemEditor öffnen — öffnet das vollständige DDL des Objekts im SQL-Editor zur manuellen Bearbeitung
Änderungen im visuellen Formular erzeugen je nach Objekttyp ein ALTER oder DROP + CREATE.
MariaDB
Bei MariaDB werden Routinen, Trigger und Indizes in einer Anweisung ersetzt (CREATE OR REPLACE): Schlägt sie fehl, ist das bisherige Objekt noch da.
Oracle
Mit Oracle werden Prozeduren, Funktionen, Packages, Trigger und die DBMS_SCHEDULER-Jobs unter Events bearbeitet. Ein Trigger mit mehreren Ereignissen, UPDATE OF-Spalten, eigenem REFERENCING oder COMPOUND und eine Routine, deren Kopf das Formular nicht schreiben kann, öffnen sich, werden aber nicht aus dem Blatt gespeichert: Im ItemEditor öffnen bringt sie in den SQL-Editor.
ClickHouse
Mit ClickHouse werden benutzerdefinierte Funktionen mit Bearbeiten (visuelles Formular) bearbeitet, das den Routinen-Editor mit ihren Parametern und ihrem Ausdruck öffnet, und Im ItemEditor öffnen bringt ihr DDL in den SQL-Editor.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Generiert automatisch Testzeilen für eine Tabelle.
Wo es zu finden ist: Kataloge › Kontextmenü › Mit Dummy-Daten füllen
Öffne das Kontextmenü einer Tabelle im Tab Tabellen der Kataloge — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und wähl Mit Dummy-Daten füllen. Du kannst auch die Tabelle auswählen und in der Leiste der Kataloge auf Tabelle füllen tippen. Im schreibgeschützten Modus erscheint die Funktion nicht.
Du wählst, wie viele Zeilen du möchtest, von 1 bis 5000, und das Blatt zeigt vor dem Start jede Spalte mit ihrem Typ und einem Beispielwert. Calíope liest die Spalten und ihre Typen vom Server und überspringt Autoinkrement- und berechnete Spalten, die die Engine selbst füllt. Auch die Werte eines Fremdschlüssels sind zufällig, sie müssen also in der übergeordneten Tabelle nicht existieren.
Eingefügt wird in Stapeln von 50 Zeilen, mit Fortschrittsbalken. Lehnt der Server einen Stapel ab, hält das Laden an und sagt dir, warum. Am Ende sagt es, wie viele Zeilen laut Server eingefügt wurden, wie viele er ohne Fehler verworfen hat und ob er vor angepassten Werten gewarnt hat.
MySQLMariaDBAuroraTiDB
Eine ENUM- oder SET-Spalte erhält Werte aus ihrer eigenen Liste. Während des Ladens ist die Fremdschlüsselprüfung ausgeschaltet, sodass Zeilen übrig bleiben können, die auf ein nicht vorhandenes übergeordnetes Element verweisen: Sie eignen sich, um einen JOIN ohne Treffer zu testen. Eine Zeile mit doppeltem Schlüssel oder nicht erfülltem CHECK wird ohne Fehler verworfen, sodass weniger Zeilen als angefordert eingefügt werden können. Ein Wert außerhalb des Bereichs wird nicht verworfen: Er wird auf die Grenze des Typs gekürzt eingefügt — ein TINYINT von 300 wird zu 127 — und hinterlässt eine Warnung.
PostgreSQL
Während des Ladens werden die Trigger der Tabelle nicht ausgelöst, auch nicht die, die Fremdschlüssel prüfen, sodass Zeilen übrig bleiben können, die auf ein nicht vorhandenes übergeordnetes Element verweisen. Eine Zeile, die einen eindeutigen Schlüssel wiederholt, wird ohne Fehler verworfen. Die Trigger abzuschalten erfordert einen Superuser: Ohne ihn läuft das Laden mit geprüften Fremdschlüsseln weiter, die Schlussmeldung sagt es, und ein Stapel mit einem Wert, den es in der übergeordneten Tabelle nicht gibt, hält mit seiner Warnung an.
SQL ServerOracle
Die Fremdschlüsselprüfung bleibt eingeschaltet: Ein Stapel mit einem Wert, den es in der übergeordneten Tabelle nicht gibt, hält mit seiner Meldung an, ebenso einer mit einem doppelten Schlüssel.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Stichwörter: Dummy-Daten, seed, test data, füllen, fiktiv
Verhindert versehentliche Änderungen an Katalogobjekten.
Wo es zu finden ist: Kataloge › Nur lesen
Kataloge öffnet sich mit Nur lesen: Der Schalter in der Leiste ist an, und die Schaltflächen zum Erstellen und Löschen sind deaktiviert. Schalt ihn aus, um Objekte zu erstellen oder zu löschen, und wieder an, wenn du eine Produktionsdatenbank erkundest. Trägt die Verbindung ein schreibgeschütztes Umgebungsetikett, fehlt der Schalter, und die Schaltflächen zum Erstellen und Löschen fehlen auch: Diese Sitzung kann nicht schreiben, also gibt es nichts zu entsperren.
Stichwörter: nur lesen, read only, schützen, Produktion
Erstellt oder ändert eine View; welche Optionen es gibt, hängt von der Engine ab.
Wo es zu finden ist: Kataloge › Neue View / View bearbeiten
Der View-Editor öffnet sich beim Klick auf Neue View oder über das Kontextmenü einer bestehenden View — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Er generiert das DDL CREATE VIEW automatisch.
Verfügbare Felder:
- Name — Name der View in der ausgewählten Datenbank.
- Der Ersetzen-Schalter — ist er aktiv, ersetzt das generierte DDL die View, falls sie bereits existiert, ohne sie vorher löschen zu müssen. Der Schalter heißt wie die Klausel, die er schreibt:
MySQLMariaDBAuroraPostgreSQLOracleTiDB
OR REPLACE — CREATE OR REPLACE VIEW.
SQL Server
OR ALTER — CREATE OR ALTER VIEW.
MySQLMariaDBAurora
- Algorithmus — steuert, wie der Server die View verarbeitet:
- UNDEFINED (Standard) — der Server wählt den optimalen Algorithmus.
- MERGE — kombiniert die Query der View mit der äußeren Query. Effizienter.
- TEMPTABLE — materialisiert die View in einer temporären Tabelle, bevor äußere Filter angewendet werden.
- SQL Security — legt die Privilegien fest, mit denen die View ausgeführt wird:
- DEFINER (Standard) — wird mit den Privilegien des Benutzers ausgeführt, der sie erstellt hat.
- INVOKER — wird mit den Privilegien des Benutzers ausgeführt, der sie abfragt.
TiDB
TiDB akzeptiert Algorithmus und SQL Security und behält beide in seinem SHOW CREATE VIEW. In TiDB lässt sich keine View beschreiben (IS_UPDATABLE ist NO): Zeilen werden in ihren Tabellen geändert.
- CHECK OPTION — prüft, ob die über die View geänderten Zeilen darin weiterhin sichtbar bleiben:
- LOCAL — prüft nur die Bedingung dieser View.
- CASCADED — prüft auch die Bedingungen zugrunde liegender Views.
- SQL SELECT — der Texteditor mit der SELECT-Query, die den Inhalt der View definiert.
Klick auf Anwenden, um das DDL auf dem Server auszuführen.
SQL ServerPostgreSQLOracle
Es gibt weder Algorithmus noch SQL Security: Das Blatt zeigt sie nicht an.
SQL ServerOracle
WITH CHECK OPTION hat nur eine Form, die CASCADED beschreibt: LOCAL zu wählen schreibt diese, und das Blatt sagt es.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Erstellt oder ändert gespeicherte Prozeduren und Funktionen mit visueller Oberfläche.
Wo es zu finden ist: Kataloge › Neue Routine / Routine bearbeiten
Der Routinen-Editor öffnet sich beim Klick auf Neue Routine oder beim Bearbeiten einer bestehenden Routine im Tab Routinen der Kataloge. Er generiert das DDL, das die Prozedur oder Funktion erstellt oder die mit diesem Namen ersetzt:
TiDB
Mit TiDB öffnet sich dieser Editor nicht: TiDB hat keine gespeicherten Routinen (es lehnt CREATE PROCEDURE und CREATE FUNCTION ab), und Kataloge hat keinen Reiter Routinen.
MySQLAurora
Zwei Anweisungen, nacheinander ausgeführt: DROP PROCEDURE IF EXISTS und CREATE PROCEDURE (oder DROP FUNCTION IF EXISTS und CREATE FUNCTION). MySQL kennt kein CREATE OR REPLACE für Routinen, daher wird die vorhandene zuerst gelöscht: Schlägt das Erstellen fehl, ist sie nicht mehr da.
MariaDB
Eine Anweisung: CREATE OR REPLACE PROCEDURE oder CREATE OR REPLACE FUNCTION. Schlägt sie fehl, ist die bisherige Routine noch da.
PostgreSQL
CREATE OR REPLACE PROCEDURE oder CREATE OR REPLACE FUNCTION.
SQL Server
CREATE OR ALTER PROCEDURE oder CREATE OR ALTER FUNCTION.
Verfügbare Felder:
- Name — Name der Prozedur oder Funktion.
- Typ — wähl zwischen PROCEDURE (Prozedur) oder FUNCTION (Funktion).
- Parameter — füg mit der Schaltfläche + Parameter hinzu. Jeder Parameter hat:
- Modus: IN (Eingabe), OUT (Ausgabe), INOUT (Eingabe und Ausgabe). Nur für Prozeduren verfügbar.
- Name des Parameters.
- Datentyp (z. B. INT, VARCHAR(100), DATETIME).
- Rückgabetyp (nur für Funktionen) — der Datentyp, den die Funktion zurückgibt (z. B. INT, VARCHAR(255)).
- Rumpf — Texteditor mit dem Code der Routine. Er beginnt als leerer BEGIN … END-Block, in den du schreibst.
Der Abschnitt Optionen zeigt nur, was der Server schreiben kann:
MySQLMariaDBAurora
- Deterministisch — schreibt DETERMINISTIC, wenn die Routine für dieselben Eingabeparameter immer dasselbe Ergebnis zurückgibt. Wichtig für die Replikation.
- Datenzugriff — deklariert das Verhalten der Routine gegenüber der Datenbank:
- CONTAINS SQL — kann SQL enthalten, liest oder schreibt aber keine Daten.
- NO SQL — enthält keine SQL-Anweisungen.
- READS SQL DATA — liest Daten, ändert sie aber nicht.
- MODIFIES SQL DATA — kann Daten einfügen, aktualisieren oder löschen.
PostgreSQL
Nur Deterministisch, und nur bei Funktionen: Er schreibt IMMUTABLE — die Funktion gibt für dieselben Argumente immer dasselbe Ergebnis zurück und liest die Datenbank nicht. Eine Prozedur hat diese Option nicht, und es gibt keinen Datenzugriff: PostgreSQL hat diese Klausel nicht. Sprache wählt die Sprache des Rumpfs unter denen des Servers: standardmäßig plpgsql, dazu sql und alle installierten; beim Bearbeiten einer Routine bleibt ihre erhalten. Zwei Funktionen mit gleichem Namen und unterschiedlichen Argumenten —eine Überladung— erscheinen in der Liste jeweils mit ihrer Signatur, precio(integer) und precio(text), und werden getrennt bearbeitet und gelöscht.
SQL Server
Es gibt keinen Abschnitt Optionen: SQL Server ermittelt selbst, ob eine Funktion deterministisch ist, und hat keine Klausel für den Datenzugriff. Ein Parameter, der nicht IN ist, wird @name typ OUTPUT geschrieben, und das @ wird ergänzt, wenn du es weglässt.
Klick auf Anwenden, um das DDL auf dem Server auszuführen.
Oracle
Mit Oracle schreibt der Editor CREATE OR REPLACE PROCEDURE oder FUNCTION mit den Parametern, wie sie geschrieben wurden –mit ihrem DEFAULT und ihrem %TYPE–, RETURN und DETERMINISTIC, und behält, was der Kopf trägt und das Formular nicht zeigt (AUTHID, RESULT_CACHE…). Der Rumpf ist, was nach AS folgt: die Deklarationen und der Block. Ein Package wird als Ganzes bearbeitet: Spezifikation und Rumpf, getrennt durch eine Zeile mit /. Speichert der Server es mit Kompilierfehlern, zeigt das Blatt jede Zeile von ALL_ERRORS und meldet es nicht als angelegt.
ClickHouse
Mit ClickHouse sind Routinen Lambda-Funktionen: Der Editor bietet nur FUNCTION an, Parameter haben einen Namen und keinen Typ, es gibt keinen Rückgabetyp und keine Optionen, und der Rumpf ist ein Ausdruck, der die Parameter nennt (k * x + b). Er schreibt CREATE OR REPLACE FUNCTION name AS (x, k, b) -> k * x + b. Die Funktion gehört dem Server, nicht einer Datenbank: Ihr Name trägt keine Datenbank davor. Beim Bearbeiten ist der Rumpf der Ausdruck, wie der Server ihn speichert, mit seinen Klammern.
Stichwörter: Routine, Prozedur, Funktion, PROCEDURE, FUNCTION, Parameter, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION
Wo es zu finden ist: Kataloge › Neuer Trigger / Trigger bearbeiten
Der Trigger-Editor öffnet sich beim Klick auf Neuer Trigger in der Werkzeugleiste der Kataloge oder über das Kontextmenü eines bestehenden Triggers — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Der Schema-Baum öffnet ihn nicht: Sein Kontextmenü öffnet keinen der Editoren aus Kataloge.
TiDB
Mit TiDB öffnet sich dieser Editor nicht: TiDB hat keine Trigger (es lehnt CREATE TRIGGER ab), und Kataloge hat keinen Reiter Trigger.
Verfügbare Felder:
- Name — Name des Triggers.
- Timing — wann der Trigger im Verhältnis zur Operation ausgelöst wird:
MySQLMariaDBAuroraPostgreSQL
- BEFORE — wird vor der Operation ausgeführt. Erlaubt, die Werte von NEW vor dem Schreiben zu ändern.
- AFTER — wird nach der Operation ausgeführt.
SQL Server
- AFTER — wird nach der Operation ausgeführt.
- INSTEAD OF — ersetzt die Operation durch den Code des Triggers.
Es gibt kein BEFORE.
- Ereignis — die Operation, die den Trigger auslöst:
- INSERT — beim Einfügen einer Zeile.
- UPDATE — beim Aktualisieren einer Zeile.
- DELETE — beim Löschen einer Zeile.
- Rumpf — Texteditor mit dem Code des Triggers. Der Startinhalt sagt in Kommentaren, wo die neuen und die vorherigen Zeilen stehen.
Klick auf Anwenden, um das DDL auf dem Server auszuführen.
MySQLMariaDBAuroraPostgreSQL
Der Trigger feuert einmal pro Zeile: NEW.spalte ist der neue Wert (bei INSERT und UPDATE) und OLD.spalte der vorherige (bei UPDATE und DELETE).
PostgreSQL
Der Code eines Triggers steht in einer Funktion: Calíope erstellt die Funktion <name>_fn mit dem Rumpf und den Trigger, der sie aufruft, FOR EACH ROW. Der Rumpf endet mit RETURN: In einem BEFORE-Trigger wird die Zeile geschrieben, die er zurückgibt, und NULL überspringt die Zeile. Der Startinhalt gibt COALESCE(NEW, OLD) zurück, was für alle drei Ereignisse passt. Einen Trigger zu bearbeiten, ohne ihn umzubenennen, ersetzt ihn ab PostgreSQL 14 in einer Anweisung, CREATE OR REPLACE TRIGGER; davor wird er gelöscht und neu erstellt.
SQL Server
Der Trigger feuert einmal pro Anweisung, nicht einmal pro Zeile, und die neuen und die vorherigen Zeilen stehen in den Tabellen inserted und deleted, nicht in NEW und OLD: Der Startinhalt sagt es. Einen Trigger zu bearbeiten, ohne ihn umzubenennen, ersetzt ihn ab SQL Server 2016 SP1 in einer Anweisung, CREATE OR ALTER TRIGGER: Es gibt keinen Moment ohne Trigger, und wenn der neue Rumpf nicht kompiliert, bleibt der alte; davor wird er gelöscht und neu erstellt.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Oracle
Mit Oracle ist der Zeitpunkt BEFORE, AFTER oder INSTEAD OF –letzterer auf einer View–, und es gibt zwei weitere Schalter: Für jede Zeile (FOR EACH ROW) und Aktiviert (ENABLE oder DISABLE). Speichern ist CREATE OR REPLACE TRIGGER, und eine vorhandene WHEN-Bedingung bleibt erhalten. Einer mit mehreren Ereignissen, UPDATE OF-Spalten, eigenem REFERENCING oder COMPOUND öffnet sich, wird aber nicht von hier gespeichert. Speichert der Server ihn mit Kompilierfehlern, zeigt das Blatt jede Zeile von ALL_ERRORS.
Erstellt oder ändert Events des MySQL Event Schedulers.
Wo es zu finden ist: Kataloge › Neues Event / Event bearbeiten
Der Event-Editor öffnet sich beim Klick auf Neues Event in der Werkzeugleiste der Kataloge oder beim Bearbeiten eines bestehenden Events. Er setzt voraus, dass der Event Scheduler von MySQL aktiviert ist (SET GLOBAL event_scheduler = ON).
Verfügbare Felder:
- Name — Name des Events.
- Status — steuert, ob das Event aktiv ist:
- ENABLE — das Event wird gemäß seiner Planung ausgeführt.
- DISABLE — das Event ist pausiert.
- SLAVESIDE_DISABLED — auf einem Replikations-Slave deaktiviert.
- Planungstyp:
- Einmal (AT) — wird zu einem bestimmten Datum und einer bestimmten Uhrzeit ausgeführt. Nutz die Datums-/Zeitauswahl, um den Zeitpunkt zu wählen.
- Wiederkehrend (EVERY) — wiederholt sich alle N Zeiteinheiten. Konfiguriere die Zahl und die Einheit (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR).
- Start (wiederkehrend) — wann das wiederkehrende Event zu laufen beginnt.
- Datum und Uhrzeit sind Serverzeit ohne Zeitzone: Die Auswahl zeigt, was der Server gespeichert hat, nicht die Uhrzeit deines Geräts.
- Enddatum (wiederkehrend, optional) — aktivier den Schalter, um festzulegen, wann es aufhört zu laufen.
- Rumpf — SQL-Code, den das Event ausführt. Kann ein Block BEGIN … END mit mehreren Anweisungen sein.
Klick auf Anwenden, um das DDL auf dem Server auszuführen.
PostgreSQL
Mit PostgreSQL ist das Event ein Job von pg_cron: Der Editor schreibt cron.schedule(Name, Ausdruck, Rumpf), das einen Job mit demselben Namen ersetzt, und DISABLE macht ihn mit cron.alter_job inaktiv. Es gibt nur wiederkehrende: alle N Sekunden (bis 59), Minuten oder Stunden, die Stunde und Tag teilen, und jeden Tag, jede Woche, jeden Monat oder jedes Jahr, zur Startzeit in UTC. Eine einmalige Ausführung oder ein Enddatum gibt es in pg_cron nicht, und die SQL-Vorschau sagt es. Ein Job mit einem anderen cron-Ausdruck steht in seiner DDL, öffnet aber den Editor nicht.
SQL Server
Bei SQL Server ist das Event ein Agent-Auftrag mit einem T-SQL-Schritt, der in dieser Datenbank läuft: Der Editor schreibt sp_add_job, sp_add_jobstep, sp_add_jobschedule und sp_add_jobserver, und beim Bearbeiten sp_update_job, sp_update_jobstep und sp_update_schedule, die seinen Verlauf behalten. Aufträge gehören dem Server, nicht einem Schema: Sie stehen im dbo der Datenbank, in der ihr Schritt läuft, und in einem anderen Schema sagt der Tab, wo sie sind. Ein Auftrag mit mehreren Schritten oder mit einem Zeitplan, den der Editor nicht schreibt, ist in seiner DDL zu sehen, öffnet aber den Editor nicht. Express und Azure SQL Database haben keinen Agent, und dort erscheint der Tab nicht.
Oracle
Mit Oracle ist das Event ein DBMS_SCHEDULER-Job des Schemas, ein PL/SQL-Block: Der Editor schreibt DBMS_SCHEDULER.CREATE_JOB mit job_type => 'PLSQL_BLOCK', und beim Bearbeiten SET_ATTRIBUTE, ENABLE und DISABLE, die seine Historie behalten; ein neuer Name löscht den Job und legt ihn neu an. Der Zeitplan ist FREQ=…;INTERVAL=n, mit den Uhrzeiten in UTC. Ein Job mit anderem Kalender, mit einem Programm oder der kein Block ist, erscheint in seiner DDL, öffnet aber nicht den Editor. Anlegen erfordert das Recht CREATE JOB.
Erstellt einen Index für eine Tabelle mit konfigurierbarem Typ, konfigurierbarer Methode und konfigurierbaren Spalten.
Wo es zu finden ist: Kataloge › Neuer Index / Index erstellen
Der Index-Editor öffnet sich im Tab Indizes der Kataloge: bei ausgewählter Tabelle über die Schaltfläche Neuer Index in der Werkzeugleiste; bei einem bereits vorhandenen Index über das Kontextmenü — Rechtsklick unter macOS, gedrückt halten auf dem iPad — mit Bearbeiten (visuelles Formular). Der Schema-Baum öffnet ihn nicht.
Verfügbare Felder:
- Name — Name des Index in der Tabelle.
- Typ:
- INDEX — normaler Index, erlaubt Duplikate.
- UNIQUE — eindeutiger Index, weist doppelte Werte in der indexierten Spalte oder Spaltenkombination zurück.
MySQLMariaDBAurora
- FULLTEXT — Volltextsuche. Nur für CHAR-, VARCHAR- oder TEXT-Spalten und die Engine MyISAM/InnoDB (MySQL 5.6+).
- SPATIAL — Geodaten. Nur für Spalten vom Typ Spatial, mit MyISAM oder InnoDB (MySQL 5.7+, MariaDB 10.2+).
SQL Server
- SPATIAL — Geodaten, auf einer geometry- oder geography-Spalte einer Tabelle mit Primärschlüssel. Bei geometry schreibst du die Box, die die Daten begrenzt (xmin, ymin, xmax, ymax); bei geography bleibt sie leer.
MySQLMariaDBAuroraPostgreSQL
- Methode (für INDEX und UNIQUE):
- BTREE — B-Baum, die gängigste Methode. Unterstützt Bereichsvergleiche, LIKE 'abc%', ORDER BY.
- HASH — Hash-Tabelle, unterstützt nur exakte Gleichheitsvergleiche.
MySQLMariaDBAurora
HASH beachtet nur die Engine MEMORY.
PostgreSQL
Ein UNIQUE-Index kann nicht HASH sein, also ist die Methode bei UNIQUEBTREE. Neben BTREE und HASH bietet er GIN an —für jsonb, Arrays und Volltext—, GIST und SPGIST —Geometrie und Bereiche— sowie BRIN für sehr große, nach Einfügung geordnete Tabellen; beim Bearbeiten eines Index bleibt seine Methode erhalten. Das Kästchen Ohne Schreibsperre erstellen (CONCURRENTLY) erstellt den Index, ohne die Tabelle für Schreibvorgänge zu sperren, dauert dafür aber länger.
SQL ServerOracle
Es gibt keine Methode: CREATE INDEX hat keine USING-Klausel.
- Spalten — füg die Spalten hinzu, aus denen der Index besteht, mit dem Namensfeld und optional der Präfixlänge (Anzahl der zu indexierenden Zeichen; nützlich für lange TEXT- oder VARCHAR-Spalten).
SQL ServerPostgreSQLOracle
Es gibt keinen Präfix-Index: Die ganze Spalte wird indexiert, und das generierte DDL sagt es in einem Kommentar.
Der Primärschlüssel wird über den Tab Spalten des Tabellen-Builders verwaltet, nicht über diesen Editor.
Klick auf Anwenden, um CREATE INDEX auf dem Server auszuführen.
ClickHouse
Mit ClickHouse öffnet sich dieser Editor nicht: Der Tab heißt Schlüssel und hat kein Neuer Index. Ein Skip-Index wird im Tabellen-Designer hinzugefügt oder entfernt, auf seinem Tab Indizes.
Apple Vision Pro: Das Kontextmenü öffnet sich, wenn du die Zeile ansiehst und Daumen und Zeigefinger zusammengeführt hältst.
Oracle
Mit Oracle ist der Typ INDEX, UNIQUE, FULLTEXT –ein Oracle-Text-Index, INDEXTYPE IS CTXSYS.CONTEXT– oder SPATIAL –MDSYS.SPATIAL_INDEX_V2, der zuerst seine Zeile in USER_SDO_GEOM_METADATA anlegt, falls sie fehlt, mit der SRID der vorhandenen Geometrien oder 4326 bei leerer Tabelle–; beide gelten für eine Spalte und erscheinen nur, wenn der Server Oracle Text und Spatial mitbringt. Der Index wird im Schema seiner Tabelle angelegt. Einen Index zu löschen, der eine UNIQUE-Einschränkung trägt, löscht die Einschränkung und mit ihr den Index.
TiDB
Mit TiDB sind die Typen INDEX und UNIQUE, und die Methode ist BTREE: TiDB nimmt FULLTEXT mit einer Warnung an, ohne den Index anzulegen, und hat keine räumlichen Typen, die sich indexieren ließen.
Das Suchfeld filtert die Liste des offenen Tabs nach Namen und leert sich beim Tabwechsel; Aktualisieren liest die Datenbank neu, und die Liste lädt sich von selbst neu, wenn ein anderes Calíope-Werkzeug sie ändert.
Wo es zu finden ist: Workspace › Werkzeuge › Kataloge
Das Suchfeld in der Leiste von Kataloge filtert die Liste des offenen Tabs nach Namen —Tabellen, Ansichten, Indizes, Routinen und die übrigen— und leert sich beim Tabwechsel.
Die Schaltfläche Aktualisieren liest die Datenbank neu. Du brauchst sie selten: Wenn ein anderes Calíope-Werkzeug in dieser Datenbank ein Objekt anlegt oder löscht, lädt sich die Liste von selbst neu. Was außerhalb von Calíope geändert wird, erscheint nach dem Aktualisieren.
Stichwörter: suchen, filtern, aktualisieren, neu laden, Kataloge
Das Kontextmenü einer Tabelle, eines Index, einer Routine oder eines Events bietet an, es zu löschen; die Bestätigung zeigt das DROP, das die Engine ausführt.
Wo es zu finden ist: Workspace › Werkzeuge › Kataloge
Das Kontextmenü einer Tabelle, eines Index, einer Routine oder eines Events bietet an, es zu löschen. Bevor etwas geschieht, zeigt Calíope die DROP-Anweisung, die die Engine ausführt, und bittet dich zu bestätigen; trägt die Verbindung ein Umgebungsetikett, das eine Bestätigung verlangt, nennt der Dialog es.
Ansichten, Trigger und Sequenzen werden nicht in Kataloge gelöscht: lösche sie im SQL-Editor.
Mit geschlossenem Schloss ist die Option deaktiviert; in einer Sitzung, die nur lesen darf, wird sie nicht gezeichnet.