SQLite - Comando ALTER TABLE

SQLite ALTER TABLEEl comando modifica una tabla existente sin realizar un volcado completo y recargar los datos. Puede cambiar el nombre de una tabla usando la instrucción ALTER TABLE y se pueden agregar columnas adicionales en una tabla existente usando la instrucción ALTER TABLE.

No hay otra operación compatible con el comando ALTER TABLE en SQLite, excepto cambiar el nombre de una tabla y agregar una columna en una tabla existente.

Sintaxis

A continuación se muestra la sintaxis básica de ALTER TABLE para CAMBIAR EL NOMBRE de una tabla existente.

ALTER TABLE database_name.table_name RENAME TO new_table_name;

A continuación se muestra la sintaxis básica de ALTER TABLE para agregar una nueva columna en una tabla existente.

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

Ejemplo

Considere la tabla EMPRESA con los siguientes registros:

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

Ahora, intentemos cambiar el nombre de esta tabla usando la instrucción ALTER TABLE de la siguiente manera:

sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;

La declaración SQLite anterior cambiará el nombre de la tabla COMPANY a OLD_COMPANY. Ahora, intentemos agregar una nueva columna en la tabla OLD_COMPANY de la siguiente manera:

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

La tabla EMPRESA ahora ha cambiado y la siguiente será la salida de la instrucción 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

Cabe señalar que la columna recién agregada se llena con valores NULL.