¿Se puede usar MySqlBulkLoader con una transacción? No veo una forma de adjuntar explícitamente una transacción a una instancia del cargador. ¿Hay otra manera?¿Se puede usar MySqlBulkLoader con una transacción?
Respuesta
como se ha dicho here por miembro del equipo de documentación de MySQL:
It's not atomic. The records loaded prior to the error will be in the
table.
arround del trabajo es para importar datos a la mesa dedicada y luego ejecutar INSERT INTO ... SELECT ...
que estará operación atómica. En grandes conjuntos de datos, este es un problema potencial debido a una transacción larga.
El MySQL manual indica que MySqlBulkLoader es un contenedor de 'LOAD DATA INFILE'. Mientras mira a la documentación 'CARGA DE DATOS INFILE' Me di cuenta de este párrafo:
Si especifica IGNORE, registros de entrada que duplican un registro existente en un valor de clave única se omiten. Si no especifica cualquiera de las opciones, el comportamiento depende de si se especifica la palabra clave LOCAL . Sin LOCAL, se produce un error cuando se encuentra un valor de clave duplicado , y se ignora el resto del archivo de texto . Con LOCAL, el comportamiento predeterminado de es el mismo que si se especifica IGNORE ; esto se debe a que el servidor no tiene forma de detener la transmisión del archivo en el medio de la operación.
No encontré discusión sobre las transacciones, pero el párrafo anterior indicaría que las transacciones no son posibles.
Una solución alternativa sería importar los datos en una tabla de importación y luego utilizar un procedimiento almacenado por separado para procesar los datos mediante transacciones en la tabla deseada.
Así que en Answ
- 1. ¿Se puede usar node.js con IIS?
- 2. ¿Se puede usar Django con py2exe?
- 3. ¿Se puede usar @Autowired con campos estáticos?
- 4. ¿Se puede usar Clutter con Python 3?
- 5. ¿se puede usar batman.js con express?
- 6. ¿Se puede usar Console2 con Powershell?
- 7. ¿Se puede usar valgrind junto con Cygwin?
- 8. ¿Se puede usar counter_cache con has_many?
- 9. ¿Se puede usar currying con funciones lambda?
- 10. Cómo usar las transacciones (comenzar transacción, confirmar transacción)?
- 11. No se puede deshacer la transacción en Zend Framework
- 12. kohana transacción con orm
- 13. ¿Se inicia una transacción incluso en SELECT?
- 14. No se puede usar DialogResult
- 15. Esta SqlTransaction se ha completado; ya no se puede usar
- 16. No se puede usar Server.MapPath
- 17. Codeigniter una transacción con dos modelos
- 18. ¿Puede tener múltiples MySqlCommand en una sola transacción?
- 19. ¿Puede MySql revertir una transacción sql en varias tablas?
- 20. Transacción Ámbito Entidad con
- 21. ¿Se puede usar la reversión de TransactionScope con Selenium o Watin?
- 22. ¿Se puede usar el generador XeLaTeX con Sphinx?
- 23. ¿Cómo se puede usar Path.Combine con más de 2 argumentos?
- 24. ¿Se puede usar .Contains (string) con un Statement Select Case?
- 25. ¿Se puede usar ADO.NET SQLCommandBuilder con claves compuestas?
- 26. ¿Se puede usar frameworks Java EE con Google App Engine?
- 27. transacción con dapper dot net
- 28. ¿Se puede usar UILongPressGestureRecognizer junto con eventos táctiles como touchesMoved?
- 29. puede usar comodines con vlookup?
- 30. ¿Se puede usar NSDictionary con TableView en iPhone?
Tenga en cuenta que esto se aplica a las tablas MyISAM, que no admite transacciones. InnoDB al menos trata LOAD DATA ... como una transacción. – nos