Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2006
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 02-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Puedes hacerlo con una sóla instrucción sql:

Código SQL [-]
create table nueva_tabla
select * from tabla

// Saludos
Responder Con Cita
  #3  
Antiguo 03-05-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Y olé.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 05-05-2006
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
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)
Responder Con Cita
  #5  
Antiguo 05-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #6  
Antiguo 06-05-2006
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 06-05-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #8  
Antiguo 06-05-2006
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
Smile 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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duplicar un Objeto Fita SQL 5 01-05-2005 15:14:33
Excepción no capturada al duplicar clave triky Conexión con bases de datos 0 11-08-2004 13:19:29
Duplicar tabla k2k2k2 Firebird e Interbase 2 11-07-2004 07:02:20
No duplicar datos al hacer inserciones... uper Firebird e Interbase 5 30-06-2004 12:47:25


La franja horaria es GMT +2. Ahora son las 19:37:19.


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