ALTER TABLE en BBj SQL

En BBj 7.0 y superior, la instrucción ALTER TABLE es un poderoso comando SQL que un desarrollador puede utilizar para realizar cambios en la estructura de sus tablas de base de datos, directamente desde cualquier apliacción BBj, ODBC, o JDBC. Antes de la introducción de ALTER TABLE en el motor SQL de BBj, los desarrolladores estaban obligados a realizar modificaciones en sus tablas por medio de una aplicación GUI o de un programa personalizado que modificara el diccionario de archivos directamente. Usando una interfaz GUI había que realizar los cambios manualmente, mientras que el usando el método de un programa personalizado deja abierta la posibilidad de que la base de datos se corrompa si el desarrollador no realiza las cambios correctamente.

Advertencia

Si Modifica una tabla empleando ALTER TABLE realiza los cambios tanto a la definición del diccionario de datos para la tabla, así como el archivo de datos que contienen los registros. En algunas aplicaciones BBx, esto puede ser problemático, porque el código de la aplicación depende de una estructura de archivos, incluyendo el tamaño del registro, la plantilla de diseño, la estructura de llaves, el orden, etc. Asegúrese de entender su estructura de archivos de datos y el código que accede los archivos de datos directamente (si es que existe tal código) antes de usar ALTER TABLE.

ALTER TABLE le da al desarrollador la facultad de modificar varias características de las tablas en su base de datos. Estas son:

    • Agregar una Nueva Columna

    • Cambiar el Nombre de una Columna

    • Cambiar el Tipo de Dato y/o el Tamaño

    • Eliminar una Columna

    • Eliminar una Restricción (sólo ESQL)

Todas estas características requieren que BBj reescriba los datos a fin de hacer los cambios al tamaño del registro o al diseño con la excepción del cambio al nombre de la columna. Depeniendo del tamaño del archivo de datos será el tiempo que tomen éstos procesos.

Agregar una Nueva Columna

Cuando BBj agrega una nueva columna a una tabla, la agrega al final del registro. Incrementa el tamaño del registro según el tamaño de la nueva columna en base al tipo de dato y tamaño especificado. El siguiente ejemplo agrega una columna llamada SKU en la tabla PRODUCTOS en la base de datos Chile Company:

ALTER TABLE productos ADD COLUMN sku VARCHAR(30)

Cambiar el Tipo de Dato o el Tamaño de una Columna

Si cambia el tipo de dato o el tamaño de una columna cambia el monto de datos que serán almacenados en la columna y/o el tipo de datos. Normalmente esto cambiará el tamaño de registro. El siguiente ejemplo cambia el tamaño de la columna APELLIDO en la tabla CLIENTE en la base de datos Chile Company:

ALTER TABLE cliente ALTER COLUMN apellido VARCHAR(30)

Cambiar el Nombre a una Columna

Renombrar una columna cambia el nombre de una columna por otro. El siguiente ejemplo renombra la columna P_UNIT por PESO_UNITARIO en la base de datos Chile Company:

ALTER TABLE productos RENAME COLUMN p_unit TO peso_unitario

Eliminar una Columna

Cuando BBj elimina una columna desde una tabla, este aminora el tamaño de un registro según el monto especificado en la definición de la columna en base a su tipo de dato y tamaño. El siguiente ejemplo elimina una columna llamada SKU desde la tabla PRODUCTOS en la base de datos Chile Company:

ALTER TABLE producto DROP COLUMN sku

Eliminar una Restricción de Columna - ESQL Solamente

Las tablas ESQL son el único tipo de tablas que soportan restricciones tales como no permitir nulos, llaves foráneas, etc. El siguiente ejemplo elimina una restricción de columna llamada MI_TABLA_FK desde la tabla MI_TABLA:

ALTER TABLE mi_tabla DROP CONSTRAINT mi_tabla_fk