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.


Reply via email to