Asumamos que hay una tabla llamada FACTURACION que sería la cabecera de una factura (codigo de cliente, iva, etc) y sus ítems (codigo de articulo, detalle, importe) en la segunda tabla llamada DETALLEF.
El siguiente programa borra todo de un período ingresado en las dos tablas, la 2da tabla DETALLEF es medio grande, tiene 14 millones de registros, mi problema es que demora bastante y no puedo o no se como monitorear para que vaya mostrando por donde va.
Código:
Yo creé un indice en DETALLEF que incluye la matricula y el numero de factura, campos que están en el Where de la instrucción SQL. // en la siguiente instrucción armo la fecha "2012-06-12 00:00:00" $pe="20". substr($p, 6, 2). "-". substr($p, 3, 2)."-".substr($p, 0, 2). " 00:00:00"; // busco las facturas en ese período $a="select * from facturacion where periodo = '". $pe. "'"; $prepare=mysql_query($a); while ($row=mysql_fetch_array($prepare)){ // borro los items de la factura encontrada en el período $d="delete from detallef where matricula ='".$row[matricula]."' and trim(factura)='".trim($row[nrofactura])."'"; $x=mysql_query($d); // Borro la factura en curso $d2="delete from facturas where id = '". $row[id]. "'"; $x2=mysql_query($d2); } // en while
Que puedo hacer?
Muchas Gracias.