PostgreSQL - Creación tabla a partir de otra

 
Vista:
sin imagen de perfil

Creación tabla a partir de otra

Publicado por Daniel (2 intervenciones) el 27/05/2022 17:22:21
Quiero crear una tabla con las siguientes caracteristicas que estan en otra tabla

CREATE TABLE usuarios_hist(
id_usuarios_hist serial,
d_nombre character varying(300) NOT NULL,
d_apellido character varying(100) NOT NULL,
d_clave character varying(32) NOT NULL,
d_correo character varying(100),
n_celular character varying(100),
d_sitio_web character varying(100),
id_compania integer,
f_alta date,
c_usuario_alta character varying(100),
f_actualizac date,
c_usuario_act character varying(100),
f_operacion date,
c_usuario_operacion integer,
c_operacion integer,
PRIMARY KEY (id_usuarios_hist)
);

Hay una posibilidad de lo escrito arriba, se pueda hacer algo asi:

CREATE TABLE nueva_tabla AS
TABLE tabla_existente WITH NO DATA;

Ademas de crear la tabla quiero agregar 2 columnas mas
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Creación tabla a partir de otra

Publicado por Francisco (110 intervenciones) el 29/05/2022 15:33:10
Hola


PostgreSQL permite copiar una tabla existente, incluida la estructura de la tabla y los datos, mediante el uso de varias formas de declaración. Para copiar una tabla por completo, incluida la estructura de la tabla y los datos, usa la siguiente declaración.

1
2
CREATE TABLE tabla_nueva AS
TABLE tabla_origen

Para copiar una estructura de tabla sin datos, los usuarios deben agregar la cláusula WITH NO DATA a la instrucción CREATE TABLE de la siguiente manera:

1
2
3
CREATE TABLE tabla_nueva AS
TABLE tabla_origen
WITH NO DATA;

Ahora , para agregar mas columnas debes modificar la tabla con la sentencia ALTER TABLE


1
2
3
4
5
ALTER TABLE tabla_nueva
ADD COLUMN nombre_columna_1  tipo_dato,
ADD COLUMN nombre_columna_2  tipo_dato,
...
ADD COLUMN nombre_columna_2  tipo_dato;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Creación tabla a partir de otra

Publicado por Daniel (2 intervenciones) el 31/05/2022 14:36:44
Hola Francisco, se entiende lo que me decis, por ahi yo no me explique bien:

Creo una tabla a partir de otra:
CREATE TABLE tabla_nueva AS
TABLE tabla_origen
WITH NO DATA;

Si ahora quisiera agregar los campos de otra tabla:

Por ejemplo los campos de la tabla otra_tabla a la tabla recien creada tabla_nueva

como lo haria?
Desde ya gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 256
Oro
Ha mantenido su posición en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Creación tabla a partir de otra

Publicado por Francisco (110 intervenciones) el 01/06/2022 14:15:54
Hola


No te queda otra que usar INTO en la sentencia SELECT mas JOIN


1
2
3
4
5
SELECT a.col1, a.col2, b.col1, b.col2
FROM tabla_a AS a
INNER JOIN tabla_ B AS b ON a.id = b.id
WHERE 1<>1                                                 --para que solo genere la tabla y no guarde datos
INTO nueva_tabla;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar