Questa pagina descrive Calíope 1.8, la versione che sto costruendo adesso. La 1.7 è sull'App Store per Mac, iPad, iPhone, Apple Watch, Apple TV e Apple Vision Pro. Il changelog dice in quale versione è arrivata ogni funzione.
Aggiunge a ogni argomento un pulsante «Apri in Calíope». Funziona solo con l'app installata.
Naviga tabelle, viste, indici, campi, routine, trigger ed eventi.
Dove si trova: Workspace › Strumenti › Cataloghi
Apri Cataloghi dalla barra di navigazione del workspace. Seleziona un database nel selettore superiore. Le sotto-tab mostrano le diverse categorie di oggetti.
ClickHouse
Con ClickHouse non ci sono le schede Trigger ed Eventi, e una nota sotto le schede dice che cosa ne fa le veci. Indici si chiama Chiavi: per ogni tabella, la chiave di ordinamento, quella di partizione, la primaria se diversa, quella di campionamento, gli indici di salto con tipo e granularità, e le proiezioni, senza cardinalità né Nuovo indice. Tra Viste e Chiavi c'è Viste materializzate: l'elenco dice dove scrive ciascuna —Interna, se la destinazione l'ha creata il server— e quando si aggiorna, e sotto c'è la scheda di quella scelta: da quale tabella legge, in quale tabella scrive e con quale nome interrogarla, quanto occupa la destinazione e quante righe ha, quando è stata scritta l'ultima riga e, se si aggiorna da sola, la programmazione, lo stato e l'ultimo e il prossimo aggiornamento, con il fuso scritto. Routine elenca le funzioni dell'utente, che sono lambda e si creano e si modificano da qui.
Oracle
Con Oracle il selettore elenca schemi: quelli con qualche oggetto che il tuo account può vedere, più il tuo anche se vuoto, compresi quelli di Oracle (SYS, MDSYS…). Tabelle mostra quelle dell’utente —senza le interne di un indice spaziale o di una vista materializzata—, con le righe dell’ultima statistica (NUM_ROWS) e i tipi come li scrive Oracle (NUMBER(10,0), VARCHAR2(100 CHAR)). Le viste materializzate hanno la loro scheda, Viste materializzate: la tabella che conserva le loro righe, da quali tabelle leggono, quando e come si aggiornano, l’ultimo aggiornamento e se sono allineate, con Aggiorna ora. Routine elenca procedure, funzioni e package —con specifica e corpo nel pannello DDL— e mette INVALID dopo il tipo di quella che non compila; Trigger mette DISABLED dopo quello disattivato. In Indici, uno su funzione mostra la sua espressione, e uno di dominio o anomalo, il suo tipo (DOMAIN · MDSYS.SPATIAL_INDEX_V2, NORMAL · INVISIBLE, UNUSABLE). C’è una scheda in più, Sequenze, con minimo, massimo, passo, ciclo, cache e Successivo su disco: il prossimo numero che il server scriverà, non l’ultimo consegnato, che con la cache può essere indietro fino a un blocco. Eventi elenca i job di DBMS_SCHEDULER dello schema.
SQL Server
Con SQL Server, tra Viste e Indici c’è Viste indicizzate: le viste con un indice cluster univoco, che vi memorizzano le righe. La scheda di quella scelta dice quale indice, quanto occupa, quante righe ha e da quali tabelle legge, e il suo DDL porta gli indici dopo; in Viste non compaiono più, anche se l’albero dell’editor, il backup e il comparatore continuano a trattarle come viste. Sequenze elenca quelle dello schema con minimo, massimo, passo, ciclo, cache e Ultimo consegnato: l’ultimo numero dato da NEXT VALUE FOR.
Parole chiave: cataloghi, oggetti, tabelle, viste, indici, routine
Mostra il CREATE TABLE, CREATE VIEW o CREATE PROCEDURE e permette di modificarlo e applicarlo.
Dove si trova: Cataloghi › menu contestuale › Vedi DDL
Apri il menu contestuale —clic destro su macOS, tenere premuto su iPad— di un qualsiasi oggetto nell'elenco dei cataloghi e seleziona Vedi DDL. Il pannello inferiore mostra il DDL completo con sintassi colorata e selezione del testo ovunque.
Modificare il DDL:
Premi Apri in ItemEditor (pulsante superiore del pannello DDL) per aprire l'editor in una scheda modale con il DDL precaricato. È lo stesso editor su tutte le piattaforme, con evidenziazione della sintassi.
Modifica il DDL liberamente e premi Applica per inviarlo al server. Il pulsante Ripristina annulla le tue modifiche e torna al DDL originale. Se l'ALTER o CREATE non riesce, appare un messaggio rosso nella barra inferiore con l'errore del server.
Disponibile su macOS, iPad, iPhone e Apple Vision Pro.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle il pannello mostra ciò che il server scrive con DBMS_METADATA.GET_DDL: nomi tra virgolette e qualificati, EDITIONABLE dove si applica, l’identità intera e, in una tabella, i suoi indici, i suoi commenti e le sue chiavi esterne alla fine, come ALTER TABLE. Se il tuo account non può leggere il DDL di un oggetto di un altro schema —gli manca SELECT_CATALOG_ROLE—, un commento lo dice e Apri in ItemEditor non viene offerto. Anche le sequenze hanno Mostra DDL.
Crea una tabella direttamente dalla barra degli strumenti dei Cataloghi.
Dove si trova: Cataloghi › Nuova tabella
Nella barra degli strumenti dei Cataloghi usa il pulsante Nuova tabella per aprire il Builder di tabelle in un nuovo tab. Puoi anche aprire il menu contestuale di una tabella esistente — clic destro su macOS, tocca e tieni premuto su iPad — e scegliere Progetta tabella per modificarla.
Il builder divide il lavoro tra i tab della sua barra: Colonne, Indici, Chiavi esterne —dove il motore le ha— e Opzioni. Cosa offre ciascuno con il motore della tua sessione lo spiegano gli argomenti del Builder di tabelle.
La sezione Anteprima SQL nella parte inferiore mostra in tempo reale il DDL che verrà eseguito. Premi Crea tabella (o Applica le modifiche in modalità di modifica) per inviare il DDL al server.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: nuova tabella, create table, creare, DDL, builder, colonne, indici, chiavi esterne
Accedi agli editor visuali di ogni tipo di oggetto dalla barra degli strumenti.
Dove si trova: Cataloghi › Nuova vista / Nuovo indice / Nuova routine / Nuovo trigger / Nuovo evento
La barra degli strumenti dei Cataloghi include pulsanti dedicati per creare ogni tipo di oggetto:
- Nuova vista — apre l'editor delle viste
- Nuovo indice — apre l'editor degli indici
- Nuova routine — apre l'editor di funzioni e stored procedure
- Nuovo trigger — apre l'editor dei trigger
MySQLMariaDBAurora
- Nuovo evento — nella scheda Eventi, apre l'editor degli eventi dell'Event Scheduler
SQL Server
Con SQL Server, Eventi sono i job dell’Agent il cui passo gira in questo database, elencati nel suo dbo, e Nuovo evento ne crea uno. In Express, che non ha l’Agent, la scheda dice perché è vuota.
PostgreSQL
Gli eventi sono i job dell’estensione pg_cron, elencati nel suo schema, cron: Nuovo evento li pianifica con cron.schedule. Senza l’estensione, la scheda Eventi dice cosa manca.
Ogni editor genera il DDL corrispondente (CREATE VIEW, CREATE INDEX, CREATE PROCEDURE, ecc.) nel dialetto del server a cui sei connesso, e lo esegue sul server alla conferma. Ognuno offre solo ciò che quel server sa scrivere: gli argomenti seguenti dicono cosa cambia da un motore all'altro.
ClickHouse
Con ClickHouse ci sono Nuova vista e Nuova routine, che crea una funzione lambda: niente Nuovo indice —la scheda è Chiavi, e un indice di salto si aggiunge dal Costruttore di tabelle—, niente Nuovo trigger e niente scheda Eventi.
Oracle
Con Oracle ci sono Nuova vista, Nuovo indice, Nuova routine —una procedura o una funzione—, Nuovo trigger e Nuovo evento, che è un job di DBMS_SCHEDULER. Un package si modifica, ma non si crea da qui.
TiDB
Con TiDB ci sono Nuova vista e Nuovo indice. Non ci sono Nuova routine né Nuovo trigger, né la scheda Eventi: TiDB non ha routine memorizzate, trigger né pianificatore di eventi, e Cataloghi lo dice in una nota. Le sue sequenze compaiono nella scheda Sequenze, con il loro DDL.
Modifica oggetti esistenti con l'editor visuale o direttamente nell'editor SQL.
Dove si trova: Cataloghi › menu contestuale › Modifica (form visuale) / Apri in ItemEditor
Apri il menu contestuale di una vista, routine, trigger o evento nella sua scheda corrispondente dei Cataloghi — clic destro su macOS, tocca e tieni premuto su iPad. Oltre a Vedi DDL, offre due modi di modificare:
- Modifica (form visuale) — apre l'editor grafico con i campi precompilati
- Apri in ItemEditor — apre il DDL completo dell'oggetto nell'editor SQL per la modifica manuale
Le modifiche nel form visuale generano un ALTER o DROP + CREATE a seconda del tipo di oggetto.
MariaDB
Con MariaDB, routine, trigger e indici si sostituiscono in un'unica istruzione (CREATE OR REPLACE): se fallisce, l'oggetto che c'era è ancora lì.
Oracle
Con Oracle si modificano procedure, funzioni, package, trigger e i job di DBMS_SCHEDULER, che stanno in Eventi. Un trigger con più eventi, colonne di UPDATE OF, un REFERENCING proprio o COMPOUND, e una routine la cui intestazione il modulo non sa scrivere, si aprono ma non si salvano dal foglio: Apri in ItemEditor li porta all’editor SQL.
ClickHouse
Con ClickHouse, le funzioni dell’utente si modificano con Modifica (form visuale), che apre l’editor di routine con i loro parametri e la loro espressione, e Apri in ItemEditor porta il loro DDL nell’editor SQL.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Genera automaticamente righe di prova per una tabella.
Dove si trova: Cataloghi › menu contestuale › Popola con dati dummy
Apri il menu contestuale di una tabella nella scheda Tabelle dei Cataloghi — clic destro su macOS, tocca e tieni premuto su iPad — e seleziona Popola con dati dummy. Puoi anche selezionare la tabella e premere Popola tabella nella barra dei Cataloghi. In modalità sola lettura non compare.
Scegli quante righe vuoi, da 1 a 5000, e il foglio mostra ogni colonna con il suo tipo e un valore di esempio prima di iniziare. Calíope legge le colonne e i loro tipi dal server e salta le colonne autoincrementali e quelle calcolate, che riempie il motore. Anche i valori di una chiave esterna sono casuali, quindi possono non esistere nella tabella padre.
Inserisce a blocchi di 50 righe, con una barra di avanzamento. Se il server rifiuta un blocco, il caricamento si ferma e ti dice perché. Alla fine dice quante righe sono entrate secondo il server, quante ne ha scartate senza errore e se ha avvisato di valori modificati.
MySQLMariaDBAuroraTiDB
Una colonna ENUM o SET riceve valori dalla propria lista. Durante il caricamento il controllo delle chiavi esterne è disattivato, quindi possono restare righe che puntano a un padre che non esiste: servono per provare un JOIN senza corrispondenza. Una riga con una chiave ripetuta o un CHECK non rispettato viene scartata senza errore, quindi possono entrare meno righe di quelle richieste. Un valore fuori intervallo non viene scartato: entra troncato al limite del tipo — un TINYINT di 300 diventa 127 — e lascia un avviso.
PostgreSQL
Durante il caricamento i trigger della tabella non scattano, nemmeno quelli che controllano le chiavi esterne, quindi possono restare righe che puntano a un padre che non esiste. Una riga che ripete una chiave univoca viene scartata senza errore. Disattivare i trigger richiede un superutente: senza, il caricamento prosegue con le chiavi esterne controllate, il messaggio finale lo dice, e un blocco con un valore che non esiste nella tabella padre si ferma con il suo avviso.
SQL ServerOracle
Il controllo delle chiavi esterne resta attivo: un blocco con un valore che non esiste nella tabella padre si ferma con il suo avviso, come uno con una chiave ripetuta.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: dati dummy, seed, test data, popolare, fittizi
Previene modifiche accidentali degli oggetti del catalogo.
Dove si trova: Cataloghi › Sola lettura
Cataloghi si apre in Sola lettura: l'interruttore della sua barra è acceso e i pulsanti di creazione ed eliminazione sono disabilitati. Spegnilo per creare o eliminare oggetti, e riaccendilo quando esplori un database di produzione. Se la connessione ha un’etichetta di ambiente in sola lettura, l’interruttore non compare, e nemmeno i pulsanti di creazione ed eliminazione: quella sessione non può scrivere, quindi non c’è nulla da sbloccare.
Parole chiave: sola lettura, read only, proteggere, produzione
Crea o modifica una vista; le opzioni offerte dipendono dal motore.
Dove si trova: Cataloghi › Nuova vista / Modifica vista
L'Editor delle viste si apre premendo Nuova vista, o dal menu contestuale di una vista esistente — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). Genera il DDL CREATE VIEW automaticamente.
Campi disponibili:
- Nome — nome della vista nel database selezionato.
- L'interruttore di sostituzione — se attivo, il DDL generato sostituisce la vista se esiste già, senza doverla eliminare prima. L'interruttore si chiama come la clausola che scrive:
MySQLMariaDBAuroraPostgreSQLOracleTiDB
OR REPLACE — CREATE OR REPLACE VIEW.
SQL Server
OR ALTER — CREATE OR ALTER VIEW.
MySQLMariaDBAurora
- Algoritmo — controlla come il server elabora la vista:
- UNDEFINED (predefinito) — il server sceglie l'algoritmo ottimale.
- MERGE — combina la query della vista con la query esterna. Più efficiente.
- TEMPTABLE — materializza la vista in una tabella temporanea prima di applicare i filtri esterni.
- SQL Security — definisce i privilegi con cui viene eseguita la vista:
- DEFINER (predefinito) — viene eseguita con i privilegi dell'utente che l'ha creata.
- INVOKER — viene eseguita con i privilegi dell'utente che la interroga.
TiDB
TiDB accetta Algoritmo e SQL Security e li conserva nel suo SHOW CREATE VIEW. In TiDB nessuna vista accetta scritture (IS_UPDATABLE è NO): le righe si modificano nelle sue tabelle.
- CHECK OPTION — verifica che le righe modificate attraverso la vista rimangano visibili in essa:
- LOCAL — verifica solo la condizione di questa vista.
- CASCADED — verifica anche le condizioni delle viste sottostanti.
- SQL SELECT — l'editor di testo con la query SELECT che definisce il contenuto della vista.
Premi Applica per eseguire il DDL sul server.
SQL ServerPostgreSQLOracle
Non ci sono Algoritmo né SQL Security: il foglio non li mostra.
SQL ServerOracle
WITH CHECK OPTION ha una sola forma, quella che descrive CASCADED: scegliere LOCAL scrive quella, e il foglio lo dice.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Parole chiave: vista, view, CREATE VIEW, OR REPLACE, algoritmo, MERGE, TEMPTABLE, SQL SECURITY, DEFINER, INVOKER, CHECK OPTION, editor delle viste
Crea o modifica stored procedure e funzioni con interfaccia visuale.
Dove si trova: Cataloghi › Nuova routine / Modifica routine
L'Editor di routine si apre premendo Nuova routine o modificando una routine esistente dalla scheda Routine dei Cataloghi. Genera il DDL che crea la procedura o la funzione, o sostituisce quella con quel nome:
TiDB
Con TiDB questo editor non si apre: TiDB non ha routine memorizzate (rifiuta CREATE PROCEDURE e CREATE FUNCTION), e Cataloghi non ha la scheda Routine.
MySQLAurora
Due istruzioni, eseguite una dopo l'altra: DROP PROCEDURE IF EXISTS e CREATE PROCEDURE (o DROP FUNCTION IF EXISTS e CREATE FUNCTION). MySQL non ha CREATE OR REPLACE per le routine, quindi quella esistente viene eliminata prima: se la creazione fallisce, non c'è più.
MariaDB
Un'istruzione: CREATE OR REPLACE PROCEDURE o CREATE OR REPLACE FUNCTION. Se fallisce, la routine che c'era è ancora lì.
PostgreSQL
CREATE OR REPLACE PROCEDURE o CREATE OR REPLACE FUNCTION.
SQL Server
CREATE OR ALTER PROCEDURE o CREATE OR ALTER FUNCTION.
Campi disponibili:
- Nome — nome della stored procedure o funzione.
- Tipo — seleziona tra PROCEDURE (procedura) o FUNCTION (funzione).
- Parametri — aggiungi parametri con il pulsante +. Ogni parametro ha:
- Modo: IN (ingresso), OUT (uscita), INOUT (ingresso e uscita). Disponibile solo per le procedure.
- Nome del parametro.
- Tipo di dato (es. INT, VARCHAR(100), DATETIME).
- Tipo di ritorno (solo per le funzioni) — il tipo di dato che la funzione restituisce (es. INT, VARCHAR(255)).
- Corpo — editor di testo con il codice della routine. Parte come un blocco BEGIN … END vuoto in cui scrivere.
La sezione Opzioni mostra solo ciò che il server sa scrivere:
MySQLMariaDBAurora
- Deterministica — scrive DETERMINISTIC se la routine restituisce sempre lo stesso risultato per gli stessi parametri di ingresso. Importante per la replica.
- Accesso ai dati — dichiara il comportamento della routine rispetto al database:
- CONTAINS SQL — può contenere SQL ma non legge né scrive dati.
- NO SQL — non contiene istruzioni SQL.
- READS SQL DATA — legge dati ma non li modifica.
- MODIFIES SQL DATA — può inserire, aggiornare o eliminare dati.
PostgreSQL
Solo Deterministica, e solo nelle funzioni: scrive IMMUTABLE — la funzione restituisce sempre lo stesso risultato per gli stessi argomenti e non legge il database. Una procedura non ha questa opzione, e non c'è Accesso ai dati: PostgreSQL non ha questa clausola. Linguaggio sceglie quello del corpo tra quelli del server: plpgsql per impostazione predefinita, sql e quelli installati; modificando una routine si conserva il suo. Due funzioni con lo stesso nome e argomenti diversi —un overload— compaiono nell’elenco ognuna con la sua firma, precio(integer) e precio(text), e si modificano e si eliminano separatamente.
SQL Server
Non c'è la sezione Opzioni: SQL Server deduce da solo se una funzione è deterministica, e non ha una clausola di accesso ai dati. Un parametro che non è IN si scrive @nome tipo OUTPUT, e la @ viene aggiunta se la ometti.
Premi Applica per eseguire il DDL sul server.
Oracle
Con Oracle l’editor scrive CREATE OR REPLACE PROCEDURE o FUNCTION con i parametri come sono stati scritti —con il loro DEFAULT e il loro %TYPE—, RETURN e DETERMINISTIC, e conserva ciò che l’intestazione porta e il modulo non mostra (AUTHID, RESULT_CACHE…). Il corpo è ciò che segue AS: le dichiarazioni e il blocco. Un package si modifica intero: specifica e corpo, separati da una riga con /. Se il server lo salva con errori di compilazione, il foglio mostra ogni riga di ALL_ERRORS e non lo dà per creato.
ClickHouse
Con ClickHouse le routine sono funzioni lambda: l'editor offre solo FUNCTION, i parametri hanno un nome e nessun tipo, non c'è tipo di ritorno né Opzioni, e il corpo è un'espressione che nomina i parametri (k * x + b). Scrive CREATE OR REPLACE FUNCTION nome AS (x, k, b) -> k * x + b. La funzione è del server, non di un database: il nome non porta un database davanti. Modificandola, il corpo è l'espressione come la conserva il server, con le sue parentesi.
Parole chiave: routine, procedura, funzione, PROCEDURE, FUNCTION, parametri, IN, OUT, INOUT, deterministic, CONTAINS SQL, CREATE PROCEDURE, CREATE FUNCTION
Dove si trova: Cataloghi › Nuovo trigger / Modifica trigger
L'Editor di trigger si apre premendo Nuovo trigger nella barra degli strumenti dei Cataloghi, o dal menu contestuale di un trigger esistente — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). L'albero dello schema non lo apre: il suo menu contestuale non apre nessuno degli editor di Cataloghi.
TiDB
Con TiDB questo editor non si apre: TiDB non ha trigger (rifiuta CREATE TRIGGER), e Cataloghi non ha la scheda Trigger.
Campi disponibili:
- Nome — nome del trigger.
- Timing — quando si attiva il trigger rispetto all'operazione:
MySQLMariaDBAuroraPostgreSQL
- BEFORE — viene eseguito prima dell'operazione. Permette di modificare i valori di NEW prima di scriverli.
- AFTER — viene eseguito dopo l'operazione.
SQL Server
- AFTER — viene eseguito dopo l'operazione.
- INSTEAD OF — sostituisce l'operazione con il codice del trigger.
Non c'è BEFORE.
- Evento — l'operazione che attiva il trigger:
- INSERT — all'inserimento di una riga.
- UPDATE — all'aggiornamento di una riga.
- DELETE — all'eliminazione di una riga.
- Corpo — editor di testo con il codice del trigger. Il corpo di partenza dice, nei commenti, dove sono le righe nuove e quelle precedenti.
Premi Applica per eseguire il DDL sul server.
MySQLMariaDBAuroraPostgreSQL
Il trigger scatta una volta per riga: NEW.colonna è il valore nuovo (in INSERT e UPDATE) e OLD.colonna quello precedente (in UPDATE e DELETE).
PostgreSQL
Il codice di un trigger vive in una funzione: Calíope crea la funzione <nome>_fn con il corpo e il trigger che la chiama, FOR EACH ROW. Il corpo termina con RETURN: in un trigger BEFORE la riga che restituisce è quella che viene scritta, e NULL salta la riga. Il corpo di partenza restituisce COALESCE(NEW, OLD), che va bene per i tre eventi. Modificare un trigger senza rinominarlo lo sostituisce in un’unica istruzione, CREATE OR REPLACE TRIGGER, da PostgreSQL 14; prima, viene eliminato e ricreato.
SQL Server
Il trigger scatta una volta per istruzione, non una volta per riga, e le righe nuove e quelle precedenti sono nelle tabelle inserted e deleted, non in NEW e OLD: il corpo di partenza lo dice. Modificare un trigger senza rinominarlo lo sostituisce in un’unica istruzione, CREATE OR ALTER TRIGGER, da SQL Server 2016 SP1: non c’è un momento senza trigger, e se il nuovo corpo non compila resta il precedente; prima, viene eliminato e ricreato.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle il momento è BEFORE, AFTER o INSTEAD OF —quest’ultimo, su una vista—, e ci sono due interruttori in più: Per ogni riga (FOR EACH ROW) e Abilitato (ENABLE o DISABLE). Salvare è CREATE OR REPLACE TRIGGER, e la condizione WHEN che aveva si conserva. Uno con più eventi, colonne di UPDATE OF, un REFERENCING proprio o COMPOUND si apre, ma non si salva da qui. Se il server lo salva con errori di compilazione, il foglio mostra ogni riga di ALL_ERRORS.
Parole chiave: trigger, attivatore, BEFORE, AFTER, INSERT, UPDATE, DELETE, NEW, OLD, CREATE TRIGGER, editor di trigger
Crea o modifica eventi dell'Event Scheduler di MySQL.
Dove si trova: Cataloghi › Nuovo evento / Modifica evento
L'Editor di eventi si apre premendo Nuovo evento nella barra degli strumenti dei Cataloghi o modificando un evento esistente. Richiede che l'Event Scheduler di MySQL sia abilitato (SET GLOBAL event_scheduler = ON).
Campi disponibili:
- Nome — nome dell'evento.
- Stato — controlla se l'evento è attivo:
- ENABLE — l'evento viene eseguito secondo la sua programmazione.
- DISABLE — l'evento è in pausa.
- SLAVESIDE_DISABLED — disabilitato su uno slave di replica.
- Tipo di programmazione:
- Una volta (AT) — viene eseguito in una data e ora specifica. Usa il selettore di data/ora per scegliere il momento.
- Ricorrente (EVERY) — si ripete ogni N unità di tempo. Configura il numero e l'unità (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR).
- Inizio (ricorrente) — quando l'evento ricorrente inizia a essere eseguito.
- Date e orari sono in ora del server, senza fuso orario: il selettore mostra ciò che il server ha salvato, non l’ora del tuo dispositivo.
- Data di fine (ricorrente, opzionale) — attiva il toggle per definire quando smette di essere eseguito.
- Corpo — codice SQL che l'evento esegue. Può essere un blocco BEGIN … END con più istruzioni.
Premi Applica per eseguire il DDL sul server.
PostgreSQL
Con PostgreSQL l’evento è un job di pg_cron: l’editor scrive cron.schedule(nome, espressione, corpo), che sostituisce un job che ha già quel nome, e DISABLE lo lascia inattivo con cron.alter_job. Ci sono solo ricorrenti: ogni N secondi (fino a 59), minuti od ore che dividono l’ora e il giorno, e ogni giorno, settimana, mese o anno, all’ora d’inizio in UTC. Un’esecuzione unica o una data di fine non esistono in pg_cron, e l’anteprima SQL lo dice. Un job con un’altra espressione cron si vede nel suo DDL, ma non apre l’editor.
SQL Server
Con SQL Server l’evento è un processo dell’Agent con un passo T-SQL che gira in questo database: l’editor scrive sp_add_job, sp_add_jobstep, sp_add_jobschedule e sp_add_jobserver, e in modifica sp_update_job, sp_update_jobstep e sp_update_schedule, che ne conservano la cronologia. I processi appartengono al server, non a uno schema: sono elencati nel dbo del database in cui gira il loro passo, e in un altro schema la scheda dice dove sono. Un processo con più passi, o con una pianificazione che l’editor non scrive, si vede nel suo DDL ma non apre l’editor. Express e Azure SQL Database non hanno l’Agent, e lì la scheda non compare.
Oracle
Con Oracle l’evento è un job di DBMS_SCHEDULER dello schema, un blocco PL/SQL: l’editor scrive DBMS_SCHEDULER.CREATE_JOB con job_type => 'PLSQL_BLOCK', e in modifica SET_ATTRIBUTE, ENABLE e DISABLE, che conservano la sua cronologia; un altro nome elimina il job e lo ricrea. La pianificazione è FREQ=…;INTERVAL=n, con gli orari in UTC. Un job con un altro calendario, con un programma o che non è un blocco si vede nel suo DDL, ma non apre l’editor. Creare richiede il privilegio CREATE JOB.
Crea un indice in una tabella con tipo, metodo e colonne configurabili.
Dove si trova: Cataloghi › Nuovo indice / Crea indice
L'Editor di indici si apre dalla scheda Indici dei Cataloghi: con una tabella selezionata, il pulsante Nuovo indice della barra degli strumenti; su un indice che esiste già, il menu contestuale — clic destro su macOS, tocca e tieni premuto su iPad — con Modifica (form visuale). L'albero dello schema non lo apre.
Campi disponibili:
- Nome — nome dell'indice nella tabella.
- Tipo:
- INDEX — indice normale, consente duplicati.
- UNIQUE — indice univoco, rifiuta valori duplicati nella colonna o combinazione di colonne indicizzate.
MySQLMariaDBAurora
- FULLTEXT — ricerca full-text. Solo per colonne CHAR, VARCHAR o TEXT e motore MyISAM/InnoDB (MySQL 5.6+).
- SPATIAL — dati geospaziali. Solo per colonne di tipo spaziale, con MyISAM o InnoDB (MySQL 5.7+, MariaDB 10.2+).
SQL Server
- SPATIAL — dati geospaziali, su una colonna geometry o geography di una tabella con chiave primaria. Con geometry si scrive il Riquadro che delimita i dati (xmin, ymin, xmax, ymax); con geography si lascia vuoto.
MySQLMariaDBAuroraPostgreSQL
- Metodo (per INDEX e UNIQUE):
- BTREE — albero B, il metodo più comune. Supporta confronti di intervallo, LIKE 'abc%', ORDER BY.
- HASH — tabella hash, supporta solo confronti di uguaglianza esatta.
MySQLMariaDBAurora
HASH lo rispetta solo il motore MEMORY.
PostgreSQL
Un indice UNIQUE non può essere HASH, quindi con UNIQUE il metodo è BTREE. Oltre a BTREE e HASH offre GIN —per jsonb, array e testo completo—, GIST e SPGIST —geometria e intervalli— e BRIN, per tabelle molto grandi ordinate per inserimento; modificando un indice si conserva il suo. La casella Costruire senza bloccare le scritture (CONCURRENTLY) crea l’indice senza chiudere la tabella alle scritture, al prezzo di metterci di più.
SQL ServerOracle
Non c'è Metodo: CREATE INDEX non ha la clausola USING.
- Colonne — aggiungi le colonne che compongono l'indice con il campo del nome e, facoltativamente, la lunghezza del prefisso (numero di caratteri da indicizzare; utile per colonne TEXT o VARCHAR lunghe).
SQL ServerPostgreSQLOracle
Non c'è indice per prefisso: si indicizza la colonna intera, e il DDL generato lo dice in un commento.
La chiave primaria si gestisce dalla scheda Colonne del Builder di tabelle, non da questo editor.
Premi Applica per eseguire CREATE INDEX sul server.
ClickHouse
Con ClickHouse questo editor non si apre: la scheda è Chiavi e non ha Nuovo indice. Un indice di salto si aggiunge o si toglie nel Costruttore di tabelle, nella sua scheda Indici.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Oracle
Con Oracle il tipo è INDEX, UNIQUE, FULLTEXT —un indice di Oracle Text, INDEXTYPE IS CTXSYS.CONTEXT— o SPATIAL —MDSYS.SPATIAL_INDEX_V2, che prima registra la sua riga di USER_SDO_GEOM_METADATA se manca, con lo SRID delle geometrie presenti, o 4326 su una tabella vuota—; entrambi riguardano una colonna, e compaiono solo se il server ha Oracle Text e Spatial. L’indice si crea nello schema della sua tabella. Eliminare un indice che sostiene un vincolo UNIQUE elimina il vincolo, e con esso l’indice.
TiDB
Con TiDB i tipi sono INDEX e UNIQUE, e il metodo è BTREE: TiDB accetta FULLTEXT con un avviso senza creare l’indice, e non ha tipi spaziali da indicizzare.
Parole chiave: indice, index, CREATE INDEX, UNIQUE, FULLTEXT, SPATIAL, BTREE, HASH, colonne, prefisso, ALTER TABLE, editor di indici
Il campo di ricerca filtra per nome l’elenco della scheda aperta e si svuota quando cambi scheda; aggiornare rilegge il database, e l’elenco si ricarica da sé quando un altro strumento di Calíope lo cambia.
Dove si trova: Workspace › Strumenti › Cataloghi
Il campo di ricerca della barra di Cataloghi filtra per nome l’elenco della scheda aperta —tabelle, viste, indici, routine e il resto— e si svuota quando cambi scheda.
Il pulsante Aggiorna rilegge il database. Servirà di rado: quando un altro strumento di Calíope crea o elimina un oggetto di quel database, l’elenco si ricarica da sé. Ciò che si cambia fuori da Calíope compare dopo l’aggiornamento.
Parole chiave: cercare, filtrare, aggiornare, ricaricare, cataloghi
Il menu contestuale di una tabella, un indice, una routine o un evento offre di eliminarlo; la conferma mostra il DROP che il motore eseguirà.
Dove si trova: Workspace › Strumenti › Cataloghi
Il menu contestuale di una tabella, un indice, una routine o un evento offre di eliminarlo. Prima di fare qualsiasi cosa, Calíope mostra l’istruzione DROP che il motore eseguirà e chiede di confermare; se la connessione porta un’etichetta di ambiente che chiede conferma, la finestra la nomina.
Viste, trigger e sequenze non si eliminano da Cataloghi: eliminali dall’Editor SQL.
Con il lucchetto chiuso l’opzione appare disattivata; in una sessione che può soltanto leggere, non viene disegnata.
Parole chiave: eliminare, drop, tabella, indice, routine, evento