Utilizzando Connector/J, desidero eseguire un inserimento batch in una tabella principale seguita da un inserimento batch in una tabella dei dettagli (PreparedStatement.executeBatch()
per entrambi). Non ho trovato molte informazioni online, quindi cerco feedback dalle persone che hanno esperienza con questo.Utilizzo di getGeneratedKeys con inserimenti batch in MySQL con Connector/J
Posso usare
Statement.getGeneratedKeys()
per ottenere gli ID dei nuove righe inserite nella tabella master in modo che io possa utilizzarli come chiavi esterne nelle dettaglio inserti?Cosa succede se non ogni query ha provocato un inserto (ad esempio c'è stato un
insert ignore
oinsert ... on duplicate key update
query)? Riceverò una riga inStatement.getGeneratedKeys()
per ogni istruzione o solo per quelli nuovi?Quali saranno
Statement.getGeneratedKeys()
ritorno c'è un errore con uno dei anagrafiche inseriti, econtinueBatchOnError
è impostato sutrue
nella stringa di connessione?Ci sono differenze nel comportamento correlato tra Connector/J versioni 5.0.x vs 5.5.x? Che dire di MySQL 5.0 contro 5.1?
C'è qualche altro problema o trucchetto di cui dovrei essere a conoscenza?
C'è un modo migliore per farlo?
Nota ci sono alcuni vincoli sulla tabella - http://stackoverflow.com/q/7333524/1339987 – djechlin