Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/05/2008, 10:48
rex2002xp
 
Fecha de Ingreso: enero-2006
Mensajes: 10
Antigüedad: 18 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Mover registros de una tabla a otra

Ok, mira hay varios formas de hacerlo, depende de la Version que utilices de MYSQL

Si utilzas la version 5.*, puedes creater un Procedimiento Almacenado, y ejecutarlo desde tu aplicacion cuantas veces lo necesites.

Por ejemplo:

Tenemos la tabla ventas con los siguientes campos:

Vendedor INT(11)
producto INT(11)
importe INT(11)
fecha DATE

y existe otra tabla que es identica solo que se llama ventas_historico

Seguramente queremos tener las ventas de los ultimos 3 meses en la tabla Ventas y todos los registros que tengan mayor tiempo sean movidos a la tabla ventas_historico.

lo que se hace es crear un procedimiento de esta forma:

---------------------

delimiter //

DROP PROCEDURE IF EXISTS sp_ventas_historico //

CREATE PROCEDURE sp_ventas_historico()
BEGIN
INSERT INTO ventas_historico SELECT * FROM ventas WHERE fecha < (CURDATE() - 90);

DELETE FROM ventas WHERE fecha < (CURDATE() - 90);

END
//

--------------------------


despues puedes llamar este procedimiento desde el codigo PHP

$query = "CALL sp_ventas_historico()";
$sql = mysql_query($query,$link);

Listo con esto ejecutas el procedimiento desde el codigo php, pero a mi ver deberias aprovechar las ventajas del Trigger.

cada ves que insertes un registro en la tabla ventas puede disparar el Trigger para que te mueva los registros que tengan mas de 90 dias hacia la tabla de ventas_historicas.

Todo depende si ese movimiento de registros lo queres automatizado o ejecutar cada cierto tiempo.

Si ocupas una Version anterior de mysql, te tocara hacer una consulta a la tabla y luego generar los insert de forma manual.

se me ocurre que los pongas dentro de un do while.

Espero te Sirva de algo esto que te comento.

necesitas mas ayuda , vuelve a preguntar.

Saludos,