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

Replicar registro en la misma tabla

Estas en el tema de Replicar registro en la misma tabla en el foro de Mysql en Foros del Web. Hola a todos... Pues bien, resulta que tengo una tabla, llemémosla prueba, con 4 campos: id_prueba(pk), id_user(fk), prueba, fecha. Hay un registro que quisiera repetir ...
  #1 (permalink)  
Antiguo 13/06/2008, 10:39
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Replicar registro en la misma tabla

Hola a todos...

Pues bien, resulta que tengo una tabla, llemémosla prueba, con 4 campos: id_prueba(pk), id_user(fk), prueba, fecha. Hay un registro que quisiera repetir muchas veces:

1 | 5 | alemán | 2008-06-junio

Si quisiera ingresar ese mismo registro en la misma tabla, pero con otro identificador, digamos;

1 | 5 | alemán | 2008-06-junio
2 | 5 | alemán | 2008-06-junio
3 | 5 | alemán | 2008-06-junio

Hay alguna manera de coger el resgistro que quiero repetir y replicarlo las veces que necesite? Osea una instruccion que se le pase el id del registro a repetir y lo reingrese?? O me toca siempre hacer un insert las veces que lo necesite??

Espero me hayan entendido,

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 14/06/2008, 04:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Replicar registro en la misma tabla

La base es el insert to usando un select where id=X .... luego puedes hacer n veces el mismo insert con un bucle usando algun lenguaje de programacion o un script ejecutatado directemente por mysql....

INSERT INTO prueba (id_user, prueba, fecha)
SELECT id_user, prueba, fecha
FROM prueba WHERE prueba.id_prueba = 1;

Se supone que id_prueba es autoinc.

Quim
  #3 (permalink)  
Antiguo 14/06/2008, 04:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Replicar registro en la misma tabla

Carxl y Quim,

A mí, que lo he probado, me da problema con el id (pues lo duplicas en la misma tabla). Creo que eso habría que eliminarlo, y dejarlo algo así.
INSERT INTO prueba (prueba, fecha)
SELECT prueba, fecha
FROM prueba WHERE prueba.id_prueba = 1;
La opción de Quim con programación es muy útil y es la que yo utilizaría.
No sé si se podría con un STORED PROCEDURE que al llamar al llamarlo e introducir el dato del id_prueba y el número de veces, se lo inserte en la tabla tantas veces como indique el número de veces. Imagino que recogiendo como entradas esos dos datos numéricos en el procedimiento y haciendo esta consulta de actualización con una iteración de esa consulta que se repita el número de veces requerido, él sólo tendría que llamar al procedimiento y ofrecerle ambos datos, el id_prueba, y el número de veces. No sé si es eso, pero si es eso, esa sintaxis, creo, le valdrá. Yo no trabajo con procedimientos (tal vez también con una function), pero seguro que alguien del foro puede echarle una mano. Lo que está claro es que tendrá que poner los nombres de todos los campos de la tabla menos del id. Pero si en su trabajo repite, duplica los datos con frecuencia y necesita hacerlo un número de veces, un stored procedure, si consigue montarlo, será una solución más cómoda. Se me ocurre... Y también dependerá de la versión de MySQL que utilices.
  #4 (permalink)  
Antiguo 14/06/2008, 09:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Replicar registro en la misma tabla

id_prueba(pk), id_user(fk), prueba, fecha

INSERT INTO prueba (id_user, prueba, fecha)
SELECT id_user, prueba, fecha
FROM prueba WHERE prueba.id_prueba = 1;

No no funciona con el id_user que es distinto del id_prueba.

Quim
  #5 (permalink)  
Antiguo 14/06/2008, 12:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Replicar registro en la misma tabla

llevas razón, Quim, creí que era el id_prueba.
  #6 (permalink)  
Antiguo 19/06/2008, 15:31
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Respuesta: Replicar registro en la misma tabla

Jurena, Quimfv gracias por el dato!!! Como no se me había ocurrido

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 13:04.