A menudo necesitamos modificar la tabla en Oracle según los cambios y la actualización de los requisitos. Estos son algunos de los puntos importantes sobre la instrucción Alter table
- Alteras o modificas una tabla con ALTER TABLE declaración.
- La tabla debe estar incluida en su esquema para modificar una tabla, o debe tener el privilegio de objeto ALTER para la tabla o el privilegio de sistema ALTER ANY TABLE.
- Si una vista, una vista materializada, un disparador, un índice basado en funciones, una restricción de verificación, una función o un procedimiento del paquete depende de una tabla base, la alteración de la tabla base o sus columnas puede afectar el objeto dependiente. Por ejemplo, los objetos plsql se vuelven no válido si el objeto de la tabla dependiente cambia y tiene que volver a hacerlos válidos
Modificar características físicas (INITRANS o parámetros de almacenamiento)
Podemos modificar el parámetro de almacenamiento de la tabla usando la instrucción Alterar tabla. Podemos modificar inittrans así
ALTER TABLE TABLE_NAME INITRANS 10;
Mover la tabla a nuevos segmentos o tablespace
Podemos mover la tabla sin partición o la partición de la tabla a un nuevo segmento o nuevo espacio de tabla si es necesario
Alter table table_name move tablespace <tablespace name>
Incluso podemos usar el comando mover para cambiar cualquier parámetro de almacenamiento de las tablas que no se modifique usando el comando alterar tabla
Alterar la tabla en Oracle para cambiar el tipo de datos
Podemos cambiar el tipo de datos de cualquier columna usando el comando modificar modificar tabla
ALTER TABLE <table_name> MODIFY (<column_name> <new_data_type>);
Before SQL> desc emp Name Null? Type ----------------------------------------- -------- ----------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) After SQL> desc emp Name Null? Type ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(20) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2)
modificar el tipo de datos de la columna en Oracle
Agregar una nueva columna/Eliminar una columna/Renombrar una columna
Podemos agregar una nueva columna a la definición de la tabla
Usar el comando modificar tabla agregar
ALTER TABLE <table_name>
ADD (<New column_name> <new_data_type>);
Oracle le permite cambiar el nombre de las columnas existentes en una tabla. Use la cláusula RENAME COLUMN de la instrucción ALTER TABLE para cambiar el nombre de una columna
Oracle le permite colocar la columna en la tabla usando el comando
Modificar la columna desplegable
Consulte el siguiente artículo para obtener más información sobre esto
alterar tabla agregar oráculo de columna
Establecer una columna sin usar y eliminar la columna sin usar
si le preocupa el recurso consumido al eliminar la columna, puede usar la declaración ALTER TABLE…SET UNUSED .
Esta declaración marca una o más columnas como no utilizadas, pero en realidad no elimina los datos de la columna de destino ni restaura el espacio en disco ocupado por estas columnas.
- Una columna que está marcada como no utilizada no se muestra en las consultas ni en las vistas del diccionario de datos, y su nombre se elimina para que una nueva columna pueda reutilizar ese nombre. También se eliminan todas las restricciones, índices y estadísticas definidos en la columna.
Example
ALTER TABLE <table_name>
SET UNUSED COLUMN <column_name>;
Podemos soltar la columna no utilizada más adelante cuando el recurso sea más bajo usando el comando
ALTER TABLE <table_name>
Drop UNUSED COLUMN ;
Agregue, modifique o elimine las restricciones de integridad asociadas con la tabla o también puede habilitar/deshabilitar las restricciones
La adición de restricciones se realiza mediante la modificación de restricciones de adición de tablas
ALTER TABLE EMP ADD CONSTRAINT EMP_FK FOREIGN KEY (DEPT_NO) REFERENCES DEPT(DEPT_NO);
Eliminación de restricciones:se realiza mediante el
comandoALTER TABLE DROP CONSTRAINT <constraint_name> command;
Habilitación/deshabilitación de restricciones:las restricciones se pueden crear en el modo DESHABILITAR/HABILITAR o se pueden deshabilitar o habilitar con el comando
ALTER TABLE ENABLE/DISABLE CONSTRAINT <constraint_name>
Renombrar nombre de tabla
Oracle le permite cambiar el nombre de la tabla también
Rename <table name> to <new table name>;
Alteración de caché de tabla/sin caché, compresión, paralelismo
Oracle permite Alteración de caché de tabla/sin caché, compresión, paralelismo
Artículos relacionados
Enumerar todas las tablas en Oracle
crear tabla oracle
ora-20005:las estadísticas de objetos están bloqueadas
alterar movimiento de tabla
cómo verificar todas las restricciones en una tabla en oracle
https ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_3001.htm