SQL - INSERT en misma tabla con indices compuesto

 
Vista:

INSERT en misma tabla con indices compuesto

Publicado por hubert (98 intervenciones) el 05/01/2009 22:46:29
El siguiente código es para insertar el contenido de una tabla en otras con el mismo numero de campos y con numero de registros diferentes (inserta solo los inexistentes).

INSERT INTO MyTabla
SELECT * FROM MyOtraTabla
WHERE MyIndice NOT IN(SELECT MyIndice FROM MyTabla)

Sucede que en mi caso la tabla "MyTabla" y "MyOtraTabla" tiene indices compuestos y estos indices son:

CAGENCIA y NOPERACION.

Como debería modificarse el código arriba en este caso?

Gracias Grupo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:INSERT en misma tabla con indices compuesto

Publicado por pacopaz (143 intervenciones) el 05/01/2009 23:42:16
Prueba con esto:

insert into MyTabla
select o.* from MyOtraTabla o
left join MyTabla t on
o.CAGENCIA = t.CAGENCIA and o.NOPERACION = t.NOPERACION
where t.CAGENCIA is null and t.NOPERACION is null

Esto hace un left join, trayendo todos los registros de MyOtraTabla y los registros que no se encuentran en MyTabla toman valores nulos, así que hay que buscar donde están los nulos e insertarles.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

GRACIAS:INSERT en misma tabla con indices compuest

Publicado por hubert (98 intervenciones) el 09/01/2009 02:19:12
Gracias Paco
Me sirvio el ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar