Ciao a tutti,
non mi ero mai imbattuto in una situazione come questa e non ho idea di come uscirne; vi espongo il problema:
ho due db, DB1 e DB2, che sono entrambe in produzione su due sistemi differenti e non ho la possibilità di gestirli io direttamente... quindi mi devo adattare

Sul DB1 c'è tutta la lista dei clienti, sul DB2 c'è la lista dei clienti che hanno effettuato acquisti.

Queste in breve le strutture:

DB1
Id1_AutoIncremental PIVA1_UniqueIndex NomeAzienda1
100 012 Azienda1
101 013 Azienda2
103 014 Azienda3
104 986 Azienda8


DB2
Id2_AutoIncremental PIVA2_UniqueIndex NomeAzienda2
10 013 Azienda2
11 986 Azienda8


Il mio obiettivo è costruire una tabella DB3:

DB3

SuperId_AutoIncremental Id1_UniqueIndex Id2 PIVA
1 100 null 012
2 101 10 013
3 103 null 014
4 104 11 986



Con questa SELECT riesco ad individuare tutti i record e a "ricostruirmi" lo schema perfettamente:

codice:
SELECT DB1.Id1, DB1.PIVA1, DB2.id2, DB2.PIVA2
FROM   DB1 
       LEFT JOIN DB2 
          ON DB1.PIVA1 = DB2.PIVA2
Per popolarmi il DB3 avevo pensato di includere la SELECT in una INSERT INTO:

codice:
INSERT INTO DB3 (DB3.Id1, DB3.PIVA1, DB3.id2, DB3.PIVA2)
    SELECT DB1.Id1, DB1.PIVA1, DB2.id2, DB2.PIVA2
    FROM   DB1 
           LEFT JOIN DB2 
              ON DB1.PIVA1 = DB2.PIVA2
però dalla seconda esecuzione mi da ovviamente errore, in quanto prova ad inserire di nuovo anche i record inseriti in precedenza... errore di duplicato sul campo Id1 (settato come UniqueIndex).


Il problema non è tanto come popolare il nuovo DB3, ma piuttosto come gestire i successivi aggiornamenti in quanto, come anticipato sopra, i DB1 e DB2 sono in produzione e sfornano continuamente nuovi record.

Grazie a tutti in anticipo e resto a disposizione per chiarimenti o altro.
Buona serata