El comando ALTER TABLE se utiliza para modificar una tabla existente (nom_sql). Puede efectuar una de las siguientes acciones:
Pasar ADD definición_columna añade una columna a la tabla.
La palabra clave TRAILING (debe ubicarse en frente de definición_columna si se utiliza) forza la creación de la columna luego de la última columna existente de la tabla en el archivo de estructura. Esta opción es útil cuando las columnas que contienen los datos se han eliminado de la tabla (sin que los datos sean borrados), para evitar que los datos existentes sean reasignados a la nueva columna.
Nota: este comando no permite añadir un campo (columna) de tipo Objeto.
La palabra clave PRIMARY KEY se utiliza para definir la llave primaria cuando se añade una columna.
Pasar DROP nom_sql elimina la columna nom_sql de la tabla.
Pasar ADD definición_llave_primaria añade una llave primaria (PRIMARY KEY) a la tabla.
Pasar DROP PRIMARY KEY elimina la llave primaria (PRIMARY KEY) de la tabla.
Pasar ADD definición_llave_foránea añade una llave foránea (FOREIGN KEY) a la tabla.
Pasar DROP CONSTRAINT nom_sql elimina la restricción especificada por nom_sql de la tabla.
Pasar ENABLE REPLICATE o DISABLE REPLICATE activa o desactiva el mecanismo que permite la replicación de la tabla (ver la sección Replicación vía SQL).
Pasar ENABLE LOG o DISABLE LOG activa o desactiva el historial de la tabla.
Pasar ENABLE AUTO_INCREMENT o DISABLE AUTO_INCREMENT activa o desactiva la opción "Autoincrement" de los campos de tipo entero largo.
Pasar ENABLE AUTO_GENERATE o DISABLE AUTO_GENERATE activa o desactiva la opción "Auto UUID" para los campos alfa de tipo UUID. En los dos casos, debe pasar la palabra clave MODIFY seguida del nom_sql de la columna a modificar.
Pasar ENABLE TRIGGERS o DISABLE TRIGGERS activa o desactiva los triggers para la tabla. Si desea gestionar los triggers globalmente a nivel de la base, debe utilizar ALTER DATABASE.
Pasar SET SCHEMA nom_sql transfiere la tabla al esquema nom_sql.
El comando devuelve un error:
- cuando el parámetro opcional ENABLE LOG se pasa y ninguna llave primaria válida se ha definido,
- si intenta modificar o eliminar la definición de llave primaria de la tabla sin desactivar el historial vía DISABLE LOG.
Este ejemplo crea una tabla, inserta un conjunto de valores en ella, luego añade una columna Num_Tel, inserta otro conjunto de valores y luego elimina la columna ID:
CREATE TABLE ACTOR_FANS
(ID INT32, Nom VARCHAR);
INSERT INTO ACTOR_FANS
(ID, Nom)
VALUES(1, 'Francis');
ALTER TABLE ACTOR_FANS
ADD Num_Tel VARCHAR;
INSERT INTO ACTOR_FANS
(ID, Nom, Num_Tel)
VALUES (2, 'Florence', '01446677888');
ALTER TABLE ACTOR_FANS
DROP ID;
Ejemplo para activar la opción "Autoincrement" del tipo campo Entero largo [Table_1]id:
Begin SQL
ALTER TABLE Table_1 MODIFY id ENABLE AUTO_INCREMENT;
End SQL
Desactivando la opción:
Begin SQL
ALTER TABLE Table_1 MODIFY id DISABLE AUTO_INCREMENT;
End SQL
Ejemplo para la activación de "Auto UUID" del campo tipo Alfa [Table_1]uid:
Begin SQL
ALTER TABLE Table_1 MODIFY uid ENABLE AUTO_GENERATE;
End SQL
Desactivando la opción:
Begin SQL
ALTER TABLE Table_1 MODIFY uid DISABLE AUTO_GENERATE;
End SQL