SQLite: comando ALTER TABLE

SQLite ALTER TABLEIl comando modifica una tabella esistente senza eseguire un dump completo e ricaricare i dati. È possibile rinominare una tabella utilizzando l'istruzione ALTER TABLE e colonne aggiuntive possono essere aggiunte in una tabella esistente utilizzando l'istruzione ALTER TABLE.

Non ci sono altre operazioni supportate dal comando ALTER TABLE in SQLite tranne la ridenominazione di una tabella e l'aggiunta di una colonna in una tabella esistente.

Sintassi

Di seguito è riportata la sintassi di base di ALTER TABLE per RINOMINARE una tabella esistente.

ALTER TABLE database_name.table_name RENAME TO new_table_name;

Di seguito è riportata la sintassi di base di ALTER TABLE per aggiungere una nuova colonna in una tabella esistente.

ALTER TABLE database_name.table_name ADD COLUMN column_def...;

Esempio

Considera la tabella AZIENDA con i seguenti record:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Ora, proviamo a rinominare questa tabella utilizzando l'istruzione ALTER TABLE come segue:

sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;

L'istruzione SQLite precedente rinominerà la tabella COMPANY in OLD_COMPANY. Ora, proviamo ad aggiungere una nuova colonna nella tabella OLD_COMPANY come segue:

sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);

La tabella COMPANY è ora cambiata e il seguente sarà l'output dell'istruzione SELECT.

ID          NAME        AGE         ADDRESS     SALARY      SEX
----------  ----------  ----------  ----------  ----------  ---
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Va notato che la colonna appena aggiunta è piena di valori NULL.