INGRESAR

REGISTRARSE
Buscador

Modificando tablas en sql

2024-04-05

Si vamos a realizar una modificación en la estructura de una tabla vamos utilizar el comando DDL “ ALTER TABLE ”.

Este comando realiza un COMMIT implícito y permite:

  • Añadir columnas: ALTER TABLE hr.employees ADD (job_id number);
  • Modificar columnas: ALTER TABLE hr.employees MODIFY (job_id number (5,2));
  • Borrar columnas: ALTER TABLE hr.employees DROP COLUMN job_id;
  • Renombrar columnas: ALTER TABLE hr.employees RENAME COLUMN job_id to job_id2;
  • Marcar una columna como no usada: ALTER TABLE hr.employees SET UNUSED COLUMN job_id;
  • Modificar una tabla a solo lectura: ALTER TABLE hr.employees READ ONLY ;

Consideraciones al modificar los campos de una tabla:

  • Si cambiamos el tipo de dato de un campo, la tabla debe estar vacía.
  • No vamos a poder cambiar el tipo de dato de un campo que es "FOREIGN KEY" o que es referenciado por una "FOREIGN KEY".
  • Si vamos a modificar un campo disminuyendo la longitud (precisión o escala) del tipo de dato, la tabla debe estar vacía, los registros deben tener valores nulos en tal campo o los datos existentes deben ser inferiores o iguales a la nueva longitud.
  • Podemos modificar un campo definido "NULL" a " NOT NULL ", siempre que la tabla esté vacía o no contenga valores nulos.
  • No puede redefinirse como "NOT NULL" un campo que es clave primaria.
  • Sí un campo tiene un valor por defecto y se modifica el tipo de dato de tal campo, Oracle analiza que el valor por defecto pueda convertirse al nuevo tipo de dato cuando sea necesario insertarlo; si el valor por defecto no se puede convertir al nuevo tipo de dato que se intenta modificar, la modificación del campo no se realiza.

Ejemplos Comando Alter Table: