Hola Mauricio: On Fri, 8 Sept 2023 at 19:57, mauricio pullabuestan <jmaurici...@yahoo.es> wrote: .... > >En lugar del > >> DELETE FROM item_bodega_pedidos_spp t > >> WHERE NOT EXISTS (SELECT 1 FROM items i Where i.item = t.item); .... > > Haces algo tipo: > > CREATE temporary table IBPS_temp AS > > SELECT ... > FROM item_bodega_pedidos_spp t JOIN items i USING (item) . > Que ganaría con la tabla temporal?
Facilidad a la hora de escribir el resto del proceso, si el resultado intermedio ( filas tras el delete ) no es muy grande. Puede que algo de velocidad, pero no es ese el objetivo principal. Usas dos temporales, una es una imagen de lo que sale del foxrpro, de esa con un proceso simple sacas una que es lo que quieres insertar/updatear, con los nulos eliminados. Si en un futuro ademas tienes que cambiar algo ya tienes donde hacerlo. De hecho, si fuera mi proceso y dependiendo del tamaño hasta haria otro juego de temporales separando updates de inserts. > El delete no lo puedo evitar viene de unas tablas de Visual Fox Pro. Fijate que lo que hago es en lugar de borrar las bodegas que no existen copio solo las que existen a la segunda tabla ( JOIN ) Esto puede hasta ser mas rapido, pero como te digo no es ese el objetivo, es mas tener los queries mas complejos que tienes mas abajo libres de coalesces y similares, aunque si lo vas a eliminar en foxpro no te hara falta. Francisco Olarte.