PDA

Ver la Versión Completa : Duplicar una tabla


JULIPO
02-05-2006, 05:26:00
Quiero agradecerles de antemano por la ayuda que me han brindado en el pasado y por su puesto por la que me brindaran en el futuro con mis problemillas (pero ya no pregunto tanto como antes).

Necesito saber si existe alguna forma de duplicar una tabla cambiandole el nombre unicamente (lo estoy haciedo de la siguiente manera leo los registro de una tabla y luego los inserto en la destino pero es un proceso que lleva mucho tiempo de sistema).

gracias

julipo:)

roman
02-05-2006, 06:34:54
Puedes hacerlo con una sóla instrucción sql:


create table nueva_tabla
select * from tabla


// Saludos

dec
03-05-2006, 03:45:00
Hola,

Y olé. :D

JULIPO
05-05-2006, 00:50:40
Gracias Roman por tu respuesta funciona muy bien, ahora tengo otro problema esa instruccion que me indicaste funciona para duplicar tablas de una misma base de datos, pero cuando tengo que tomar la tabla de una base de datos A y duplicarla en una Base de datos B como lo hago (por cuestion de orden en el servidor estoy trabajando con 3 bases de datos 1 maneja la configuracion del sistema, las 2 trabaja con la informacion de los clientes, y la 3 almacena los eventos generados por los clientes)

roman
05-05-2006, 00:59:31
create table base_b.nueva_tabla
select * from base_a.tabla


En MySql puedes cruzar tablas de distintas bases simplemente anteponiendo el nombre de la base. Esto no es así en otros motores y hay quienes opinan que el modelo relacional no debe involucrar múltiples bases. A mi me parece muy cómodo.

// Saludos

JULIPO
06-05-2006, 14:50:47
Roman muchas gracias por tu respuesta me facilito mucho mi trabajo, una cosa mas ya duplique la tabla pero ahora quiero añadirle los campos de otra tabla (ya la tabla esta creada como puedo sumarle los campos de otra tabla ya no en creacion).

y nuevamente gracias por tus respuestas.

julipo:)

roman
06-05-2006, 19:05:50
Pues aquí ya no es tan inmediato. Primero tienes que alterar la estructura de la tabla destino:


alter table tabla_destino
add column un_campo ...,
add column otro_campo ...


El punto es que primero tienes que saber cuál es la estructura de la tabla origen para saber el tipo de columna que agregas. Ya que agregaste las columnas a la estructura, necesitas otra sentencia sql para copiar los campos:


update tabla_destino
set un_campo = (
select un_campo from tabla_origen
where ...
)
set otro_campo = (
select otro_campo from tabla_origen
where ...
)


Esto es, una subconsulta por cada campo. Los puntos suspensivos en el where dependerán de la estructura de tus tablas pero deben ser relaciones de campos entre ambas tablas que garanticen que por cada registro en tabla_origen, la subconsulta te devuelva un sólo registro.

// Saludos

JULIPO
06-05-2006, 19:20:09
Roman las estructuras de las tablas son iguales lo que varia son los datos que alamacenas las tablas, cuando creo la tabla estoy duplicando una tabla, pero en ocasiones se requiere que la tabla que creo contenga 2 tablas de datos diferentes pero con la misma estructura.

Gracias por tus respuestas.

julipo:)