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

[SOLUCIONADO] Duplicar un registro

Estas en el tema de Duplicar un registro en el foro de Mysql en Foros del Web. Buenas! Estoy tratando de insertar un registro existente de una tabla con muchos campos, mi idea original era simplemente usar esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: ...
  #1 (permalink)  
Antiguo 18/06/2013, 09:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Duplicar un registro

Buenas!

Estoy tratando de insertar un registro existente de una tabla con muchos campos, mi idea original era simplemente usar esto:

Código MySQL:
Ver original
  1. INSERT INTO tabla SELECT * FROM TABLA WHERE id='1324';

Sin embargo la ID es clave primaria por lo que no se puede repetir, por lo tanto puedo hacer esto:

Código MySQL:
Ver original
  1. INSERT INTO tabla (campo2,campo3, ... campoN) SELECT campo2,campo3... campoN FROM tabla WHERE id='1324';

Lo cual funciona, el problema es que tiene demasiados campos y queda así:

Código MySQL:
Ver original
  1. INSERT INTO tabla (cod_interno, cod_serie, cod_faena, modo, carcasa_asociada, ind_armado, id_equipo, cod_equipo, num_posicion, fec_equipo, cod_neu, fec_ingreso, val_costo, ind_operativo, pres_obs, pres_corr, tipo_pres, ult_temp, fec_baja, ult_equipo, ult_posicion, cod_grupobaja, cod_itembaja, num_docum, ult_profext, ult_profint, fec_ultprof, id_aro, cod_aro, cod_seraro, fec_seraro, cod_cadena, cod_sercad, fec_sercad, vida, control, observacion, gtia_hrs, gtia_kms, ind_estado, fec_primera, fec_audita, cod_usuario, ind_bkp, ind_origenNeu, prof_original) SELECT cod_interno, cod_serie, cod_faena, modo, carcasa_asociada, ind_armado, id_equipo, cod_equipo, num_posicion, fec_equipo, cod_neu, fec_ingreso, val_costo, ind_operativo, pres_obs, pres_corr, tipo_pres, ult_temp, fec_baja, ult_equipo, ult_posicion, cod_grupobaja, cod_itembaja, num_docum, ult_profext, ult_profint, fec_ultprof, id_aro, cod_aro, cod_seraro, fec_seraro, cod_cadena, cod_sercad, fec_sercad, vida, control, observacion, gtia_hrs, gtia_kms, ind_estado, fec_primera, fec_audita, cod_usuario, ind_bkp, ind_origenNeu, prof_original FROM tabla WHERE id='1324';

Lo que es demasiado largo, entonces lo que busco es una forma de hacer un select de todo menos el campo ID, algo asi como

Código MySQL:
Ver original
  1. INSERT INTO tabla (* excepto id) SELECT campo2,campo3... campoN FROM select * excepto id WHERE id='1324';

Existe algo asi?

Gracias!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Última edición por stramin; 18/06/2013 a las 10:53
  #2 (permalink)  
Antiguo 18/06/2013, 12:52
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años, 7 meses
Puntos: 17
Respuesta: Duplicar un registro

Al parecer no es posible de por si.

He buscado un poco y en stackoverflow dan una solución que quizá te pueda ayudar.

La cosa es hacer un SELECT de todo y guardarlo en una tabla temporal, ahora de esa tabla temporal borras la columna que querías excluir, y volver a hacer la consulta tuya específica en esa tabla temporal, y después borrarla.

Dan esta solución en código que te podría valer:

Código SQL:
Ver original
  1. /* Get the data into a temp table */
  2. SELECT * INTO #TempTable
  3. FROM YourTable
  4. /* Drop the cloumns that are not needed */
  5. ALTER TABLE #TempTable
  6. DROP COLUMN ColumnToDrop
  7. /* Get results and drop temp table */
  8. SELECT * FROM #TempTable
  9. DROP TABLE #TempTable

Espero que te sea de ayuda.

Saludos
  #3 (permalink)  
Antiguo 18/06/2013, 13:11
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Duplicar un registro

excelente, funciona! :)

gracias!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: campo, duplicar, insert, registro, select, tabla
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




La zona horaria es GMT -6. Ahora son las 13:00.