PostgreSQL permite copiar una tabla existente, incluida la estructura de la tabla y los datos, mediante el uso de varias formas de declaración de tabla de copia de PostgreSQL. Para copiar una tabla por completo, incluida la estructura de la tabla y los datos, use la siguiente declaración.
Syntax: CREATE TABLE new_table AS TABLE existing_table;
Para copiar una estructura de tabla sin datos, los usuarios deben agregar la cláusula SIN DATOS a la instrucción CREATE TABLE de la siguiente manera:
Syntax: CREATE TABLE new_table AS TABLE existing_table WITH NO DATA;
Para copiar una tabla con datos parciales de una tabla existente, los usuarios pueden usar la siguiente instrucción:
Syntax: CREATE TABLE new_table AS SELECT * FROM existing_table WHERE condition;
La condición en la cláusula WHERE de la consulta define qué filas de la tabla existente se copiarán en la nueva tabla.
Nota: Todas las declaraciones anteriores copian la estructura y los datos de la tabla, pero no copian los índices y las restricciones de la tabla existente.
Ejemplo:
Crea una nueva tabla nombrada contacts
para la demostración usando la siguiente declaración:
CREATE TABLE contacts( id SERIAL PRIMARY KEY, first_name VARCHAR NOT NULL, last_name VARCHAR NOT NULL, email VARCHAR NOT NULL UNIQUE );
Ahora agreguemos algunos datos a la contacts
tabla usando la siguiente declaración:
INSERT INTO contacts(first_name, last_name, email) VALUES('Raju', 'Kumar', 'rajukumar@gmail.com'), ('Nikhil', 'Aggarwal', 'nikhil@gmail.com');
Para copiar el contacts
a una nueva tabla, por ejemplo, contacts_backup
tabla, utilice la siguiente declaración:
CREATE TABLE contact_backup AS TABLE contacts;
Para verificar lo anterior, use la siguiente declaración:
SELECT * FROM contact_backup;
Producción:
También podemos verificar el tipo de datos y la estructura de la tabla contact_backup usando el siguiente comando:
\d contact_backup;
Dará como resultado lo siguiente:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA