Usando Connector/J, me gustaría hacer una inserción por lotes en una tabla maestra seguida por una inserción por lotes en una tabla de detalles (PreparedStatement.executeBatch()
para ambos). No he encontrado mucha información en línea, por lo que estoy buscando comentarios de personas que tengan experiencia con esto.Uso de getGeneratedKeys con inserciones por lotes en MySQL con Connector/J
¿Puedo utilizar
Statement.getGeneratedKeys()
para obtener los ID de las filas recién insertadas en la tabla maestra para que pueda utilizarlos como claves externas en los insertos detalle?¿Qué pasa si no cada consulta resultó en una inserción (por ejemplo, hubo un
insert ignore
oinsert ... on duplicate key update
consulta)? ¿Obtendré una fila enStatement.getGeneratedKeys()
por cada declaración , o solo para las nuevas?¿Cómo serán
Statement.getGeneratedKeys()
retorno hay un error con uno de los insertados registros maestros ycontinueBatchOnError
se establece entrue
en la cadena de conexión?¿Hay alguna diferencia en el comportamiento relacionado entre Connector/J versiones 5.0.x frente a 5.5.x? ¿Qué pasa con MySQL 5.0 vs 5.1?
¿Hay algún otro problema o problema que deba tener en cuenta?
¿Hay una mejor manera de hacerlo?
Tenga en cuenta que hay algunas limitaciones en la tabla - http://stackoverflow.com/q/7333524/1339987 – djechlin