Per rinominare una tabella in PostgreSQL, usa l'istruzione ALTER TABLE seguita dalla clausola RENAME TO.
Prima di continuare a leggere, volevo parlarti della nostra GUI open source per PostgreSQL, Beekeeper Studio. Puoi rinominare una tabella facendo clic destro su di essa nella barra laterale, ed è gratuita per PostgreSQL: scaricala qui.
Sintassi
ALTER TABLE old_table_name RENAME TO new_table_name;
Esempio
Supponiamo che tu abbia una tabella chiamata customers e voglia rinominarla in clients. Il comando SQL sarebbe:
ALTER TABLE customers RENAME TO clients;
Dopo aver eseguito il comando qui sopra, la tabella customers verrà rinominata in clients. Puoi verificare la modifica interrogando information_schema o semplicemente elencando tutte le tabelle con \d:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public';
Output previsto:
table_name
--------------
clients
other_table
Rinominare tabelle con dipendenze
Quando rinomini una tabella, è importante tenere conto delle dipendenze esistenti, come chiavi esterne, indici o trigger. PostgreSQL dovrebbe gestirle automaticamente, aggiornando i riferimenti alla tabella rinominata.
Esempio con chiave esterna
Supponiamo che la tabella orders abbia una chiave esterna che fa riferimento alla tabella customers:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INT REFERENCES customers(customer_id)
);
Quando rinomini customers in clients, PostgreSQL aggiorna automaticamente il riferimento della chiave esterna:
ALTER TABLE customers RENAME TO clients;
Verifica
Per assicurarti che la chiave esterna funzioni ancora, puoi eseguire una semplice istruzione INSERT:
INSERT INTO clients (customer_id) VALUES (1);
INSERT INTO orders (customer_id) VALUES (1);
Se il riferimento della chiave esterna non fosse stato aggiornato, la seconda INSERT fallirebbe. Se va a buon fine, significa che PostgreSQL ha aggiornato correttamente il riferimento.
Rinominare una tabella in uno schema
Se la tua tabella si trova in uno schema specifico, devi includere lo schema nel comando ALTER TABLE.
Esempio
Considera una tabella sales.customers all'interno dello schema sales:
ALTER TABLE sales.customers RENAME TO clients;
La tabella sales.customers ora è sales.clients. Puoi verificarlo elencando le tabelle nello schema sales:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'sales';
Output previsto
table_name
-----------
clients
other_table
Usare Beekeeper Studio
Rinominare una tabella in Beekeeper Studio è semplicissimo:
- Connettiti al tuo database PostgreSQL con Beekeeper Studio.
- Nel pannello di sinistra, espandi lo schema che contiene la tabella e vedrai un elenco di tabelle.
- Fai clic destro sulla tabella che vuoi rinominare e scegli l'opzione
rename table. - Inserisci il nuovo nome della tabella e premi Invio.
Beekeeper Studio si occuperà del resto, inviando il comando SQL appropriato al tuo database PostgreSQL.
Considerazioni e best practice
-
Nomi di indici e vincoli: anche se PostgreSQL aggiorna automaticamente dipendenze come le chiavi esterne, non rinomina indici o vincoli. Se i nomi dei tuoi indici o vincoli includono il vecchio nome della tabella, potresti doverli rinominare manualmente.
-
Permessi: rinominare una tabella non ne modifica i permessi. Gli utenti che avevano accesso alla vecchia tabella avranno lo stesso accesso a quella rinominata.
-
Dipendenze delle viste: se ci sono viste che dipendono dalla tabella, continueranno a funzionare dopo la ridenominazione, ma potresti volerle rivedere e aggiornare per maggiore chiarezza.
Conclusione
Rinominare tabelle in PostgreSQL è un'operazione semplice ma importante. Che tu stia lavorando con tabelle in schemi diversi o con tabelle che hanno dipendenze, PostgreSQL gestisce il processo senza intoppi, assicurandosi che tutti i riferimenti vengano aggiornati correttamente. Seguendo le best practice e capendo come funziona la ridenominazione, puoi mantenere l'integrità e l'organizzazione del tuo database.
Altri articoli che potrebbero piacerti:
Beekeeper Studio è una GUI per PostgreSQL gratuita e open source
Questo è il client PostgreSQL che stavo cercando! È l'interfaccia a fare la differenza: pulita, intuitiva, potente. Addio al macchinoso PGAdmin. - David Cyprian
Beekeeper Studio è un client PostgreSQL veloce, intuitivo e facile da usare. Supporta anche tantissimi altri database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti PostgreSQL di Beekeeper Studio
A differenza di pgAdmin, Beekeeper è incredibilmente semplice da usare senza rinunciare alle funzionalità, e il prezzo è giusto! La funzione di backup del database è particolarmente utile. Un software davvero ottimo.
Strumento favoloso, l'IDE più pratico che abbia trovato finora per amministrare database Postgres e MySql: funziona e basta, senza complicazioni :-)