CREATE TABLE AS: Copiando tablas en oracle

En ocasiones necesitamos crear una tabla basada ya en una existente. Por ejemplo, queremos hacer un backup rápido de una tabla antes de modificar su estructura o datos.
Una forma de hacerlo es usando la sentencia «CREATE TABLE AS»

Por ejemplo, vamos a crear la tabla personas_backup que será una copia de la tabla personas.

create table personas_backup
as select * personas;

Una vez ejecutado, tendremos dos tablas idénticas, con los mismos datos.

Pero si lo que queremos es solo la estructura de la tabla y no su contenido,  debemos añadir la cláusula where en la que pongamos una condición que sepamos que es falsa.

Por ejemplo:

create table personas_vacia
as select * from personas
where 1=2;

La condición 1=2 siempre será falsa por lo que la tabla personas_vacia será una copia sin datos de la tabla personas.

¡OJO! Hay que tener en cuenta que usando esta técnica para copiar tablas no nos va a crear los índices o los triggers que ésta contenga. Los tendremos que crear a mano.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *