Este artículo se centrará en copiar una tabla existente en una tabla nueva en PostgreSQL. Esto podría ser útil al crear nuevas tablas que tendrían los mismos datos o datos de la misma tabla con ciertas operaciones realizadas en ellos.
Hablaremos de los siguientes 3 casos:
- Copiar tabla con la misma estructura y datos.
- Copiar tabla con la misma estructura y sin datos.
- Copiar Tabla con la misma estructura y datos parciales.
Copiar tabla con la misma estructura y datos
Para copiar una tabla con toda su estructura y datos, utilice la siguiente consulta:
Syntax: CREATE TABLE new_table AS TABLE old_table;
Ejemplo:
Agreguemos una tabla con las columnas id , first_name , last_name y email a la base de datos:
CREATE TABLE students( id SERIAL PRIMARY KEY, first_name VARCHAR, last_name VARCHAR, email VARCHAR UNIQUE );
Insertemos algunos datos en nuestra tabla de estudiantes :
INSERT INTO students(first_name, last_name, email) VALUES('Virender', 'Sehwag', 'virender.sehwag@gfg.com'), ('Hardik', 'Pandiya', 'hardik.Pandiya@gfg.com');
Ahora revisa los datos en la tabla:
SELECT * FROM students;
Si todo funciona bien, la salida será la siguiente:
Ahora copie la tabla de estudiantes en una nueva tabla llamada tabla copy_students .
CREATE TABLE copy_students AS TABLE students;
La consulta anterior creará una nueva tabla llamada copy_students con la misma estructura y datos que la tabla de estudiantes .
Ahora revisa los datos de la tabla copy_students :
SELECT * FROM copy_students;
Producción:
Copiar tabla con la misma estructura y sin datos
La cláusula SIN DATOS se usa para copiar una estructura de tabla sin los datos usando la siguiente consulta:
Syntax: CREATE TABLE new_table AS TABLE old_table WITH NO DATA;
Ejemplo:
Usemos la tabla de estudiantes que creamos antes:
CREATE TABLE without_data_students AS TABLE students WITH NO DATA;
Ejecute la consulta anterior para obtener la tabla sin_datos_alumnos con la misma estructura que los alumnos sin datos.
SELECT * FROM without_data_students;
Producción:
Copiar tabla con la misma estructura y datos parciales
La siguiente consulta se puede utilizar para copiar una tabla de acuerdo con una condición específica:
Syntax: CREATE TABLE new_table AS TABLE old_table WHERE condition;
Ejemplo:
Insertemos algunas filas más en la tabla de estudiantes :
INSERT INTO students(first_name, last_name, email) VALUES('Shreyas', 'Iyer', 'shreyas.iyer@gfg.com'), ('Rishabh', 'Pant', 'rishabh.pant@gfg.com');
Ahora la tabla de estudiantes tendrá los siguientes datos:
SELECT * FROM students;
Ahora la tabla de estudiantes se verá así:
Vamos a crear una tabla copy_partial_students con id 1 y 3 solamente:
CREATE TABLE copy_partial_students AS SELECT * FROM students WHERE id IN (1, 3);
En lugar de * , también puede definir los nombres de las columnas que desea copiar. Las columnas de la tabla de resultados tendrán los mismos nombres y tipos de datos que las columnas de salida de la cláusula SELECT.
Ahora revisa los datos de la tabla copy_partial_students :
SELECT * FROM copy_partial_students;
Producción:
Publicación traducida automáticamente
Artículo escrito por adityapande88 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA