Ma in questo modo ogni volta che trovo un itemdef dovrei farmi una INSERT ed inveceOriginariamente inviato da k.b
Non serve una matrice, basta un singolo array come nel codice di prova che ti ho postato. Crei l'array scorrendo riga per riga, quando incontri un itemdef esegui la query e svuoti l'array per poi ripopolarlo dalla riga successiva.
La query la costruisci prendendo dall'array solo i valori presenti: se i nomi delle colonne della tabella nel database sono uguali ai campi che appaiono prima dell'uguale, allora si fa immediatamente; se sono diversi basta usare un altro array "di traduzione".
io preferirei fare un'unica query per file (come ho giā scritto per questioni di velocitā)...