Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Reestructurar tabla y registros (mas de 2Mil)

Estas en el tema de Reestructurar tabla y registros (mas de 2Mil) en el foro de Mysql en Foros del Web. Hola por aqui, tengo que rehacer toda una tabla en MySQL, el asunto es que tengo lo siguiente: Tabla -> Campo1; Campo2; Campo3_A ; Campo3_B ...
  #1 (permalink)  
Antiguo 02/06/2009, 10:39
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Reestructurar tabla y registros (mas de 2Mil)

Hola por aqui, tengo que rehacer toda una tabla en MySQL, el asunto es que tengo lo siguiente:

Tabla -> Campo1; Campo2; Campo3_A; Campo3_B...

Según la estructura y los datos actuales (mas de 2Mil registros ) los campos Campo3_A y Campo3_B son lo mismo y los registros dentro de ellos están partidos en 2.. algo asi:

Cita:
Campo3_A == Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Campo3_B == Sed et arcu eros. Nulla quis velit augue, id sagittis ligula.
Lo que necesito es generar una consulta que me haga lo siguiente:

Tabla -> NuevoCampo1; NuevoCampo2; NuevoCampo3

y hacer un UPDATE a todos los registros de los campos 3_A y 3_B para que se guarden en el NuevoCampo3 (o algo asi, que realmente no se como deberia ser). Ya la tabla la tengo con todos los campos bien ordenados y sus nuevos nombres, lo que me falta es hacer esto y no puedo dejar de insertar los 2Mil y tantos registros que tengo...

Gracias mil por la ayuda que me puedan ofrecer
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 02/06/2009, 10:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Reestructurar tabla y registros (mas de 2Mil)

Si te entendí bien, mira este ejemplo:

Código mysql:
Ver original
  1. mysql> create table tabla_1(campo1 text,campo2 text, campo3A text, campo3B text);
  2. Query OK, 0 rows affected (0.01 sec)
  3.  
  4. mysql> insert into tabla_1 values('1camp','2camp','3camp','4camp');
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> create table tabla_2(campo1 text,campo2 text, nuevocampo3 text);
  8. Query OK, 0 rows affected (0.05 sec)
  9.  
  10. mysql> insert into tabla_2 select campo1,campo2,concat(campo3A," ",campo3B) from tabla_1;
  11. Query OK, 1 row affected (0.00 sec)
  12. Records: 1  Duplicates: 0  Warnings: 0
  13.  
  14. mysql> select *from tabla_2;
  15. +--------+--------+-------------+
  16. | campo1 | campo2 | nuevocampo3 |
  17. +--------+--------+-------------+
  18. | 1camp  | 2camp  | 3camp 4camp |
  19. +--------+--------+-------------+
  20. 1 row in set (0.00 sec)

Aplica para n registros.

Espero te sirva.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 02/06/2009, 10:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Reestructurar tabla y registros (mas de 2Mil)

Une los campos con un CONCAT
Si tienes los campos en la misma tabla
UPDATE tabla SET Nuevocampo1= campo1, Nuevocampo2=campo2, NuevoCampo3= CONCAT(Campo3_A,'. ',Campo3_B)
Creo que así. Luego tendrías que eliminar los campos campo1, campo2, campo3_A y Campo3_B.
Si tienes distintas tablas, dilo y haremos una inserción desde la antigua.

edito: se adelantó huesos52, que te da las indicaciones para crear una nueva tabla e insertar desde la antigua.
Saludos
  #4 (permalink)  
Antiguo 02/06/2009, 11:48
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Reestructurar tabla y registros (mas de 2Mil)

Muchas gracias a ambos... todo salio mejor de lo que imagine
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:45.