Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Duplicar una tabla (https://www.clubdelphi.com/foros/showthread.php?t=31202)

JULIPO 02-05-2006 05:26:00

Duplicar una tabla
 
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:

Código 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
 
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

Código SQL [-]
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

Una cosa mas
 
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:

Código SQL [-]
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:

Código SQL [-]
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

Las tablas son iguales
 
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:)


La franja horaria es GMT +2. Ahora son las 23:10:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi