- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- [MySQL] "Sicronizzare" due tabelle tramite il campo di relazione
-
[MySQL] "Sicronizzare" due tabelle tramite il campo di relazione
Ciao a tutti voi.
Ho la necessita di "sincronizzare" due tabelle:
ESEMPLARI
id, etc....EXPO
id, id_esemplariDiciamo che:
- ESEMPLARI e' la tabella madre con "id" chiave primaria
- EXPO e' in relazione con la tabella ESEMPLARI tramite la colonna id_esemplari
Io vorrei che tutti gli **id **di ESEMPLARI siano contenuti in **id_esemplari **di EXPO.
Al momento invece ho una situazione anomala:
- non tutti gli **id **di ESEMPLARI sono contenuti in **id_esemplari **di EXPO
- su EXPO sono presenti id_esemplari che non trovano una corrispondenza in EXPO.
Come potrei riallineare il tutto?
Grazie.
-
Ciao felino.
Credo che essendo esemplari la tabella madre sia quella "corretta", oppure no?
Io svuoterei la tabella expo e provvederei alla ri-creazione delle righe sulla base della tabella esemplari
-
Alla fine ho risolto tramite queste due query:
-- Ho rimosso le righe contenenti gli ID_ESEMPLARI non presenti nella tabella ESEMPLARI DELETE FROM expo_westie WHERE NOT EXISTS(SELECT NULL FROM esemplari f WHERE f.id = id_esemplari) -- Ho inserito gli ID della tabella ESEMPLARI non presenti nella tabella EXPO_WESTIE INSERT INTO expo_westie (id_esemplari) SELECT id FROM esemplari WHERE id NOT IN ( SELECT id_esemplari FROM expo_westie )
Magari sarebbe meglio usare una foreign key, vero?