sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo insertar una columna en una posición específica en Oracle sin soltar y recrear la tabla?

Amit-

No creo que pueda agregar una columna en cualquier lugar que no sea al final de la tabla una vez que se crea la tabla. Una solución podría ser probar esto:

CREATE TABLE MY_TEMP_TABLE AS
SELECT *
FROM TABLE_TO_CHANGE;

Suelte la tabla a la que desea agregar columnas:

DROP TABLE TABLE_TO_CHANGE;

Es en el punto en que podría reconstruir la tabla existente desde cero agregando las columnas donde desee. Supongamos que para este ejercicio desea agregar las columnas denominadas "COL2 y COL3".

Ahora inserte los datos nuevamente en la nueva tabla:

INSERT INTO TABLE_TO_CHANGE (COL1, COL2, COL3, COL4) 
SELECT COL1, 'Foo', 'Bar', COL4
FROM MY_TEMP_TABLE;

Cuando los datos se insertan en su tabla "nueva-antigua", puede eliminar la tabla temporal.

DROP TABLE MY_TEMP_TABLE;

Esto es a menudo lo que hago cuando quiero agregar columnas en una ubicación específica. Obviamente, si se trata de un sistema de producción en línea, probablemente no sea práctico, sino solo una idea potencial.

-CJ