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