Все данные или нет - PullRequest
       15

Все данные или нет

0 голосов
/ 16 ноября 2011

У меня есть простое задание, которое читает файл .csv, преобразует данные из этого файла в tMap и записывает данные из файла в БД.Если в файле .csv обнаружена ошибка, строка с ошибкой будет удалена, а все остальные данные будут записаны в БД.Если флажок die on error установлен, запись в БД будет прервана при достижении строки с ошибкой.

Что мне делать, если я хочу, чтобы ВСЕ данные записывались в БД, если ошибок нет, или НЕТ данныхнаписано, если есть хотя бы одна ошибка?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Как упоминал @Ryan, обычным стандартом является использование транзакции. Если по какой-то причине это невозможно (я думал, что слышал / видел что-то о предельном значении блокировки строк для каждой транзакции), рассмотрите возможность выгрузки результатов во временную копию вашей фактической таблицы. Если ошибок не возникает, добавьте их в рабочую таблицу. В случае возникновения ошибок выведите сообщение об ошибке и удалите (временную) таблицу.

1 голос
/ 16 ноября 2011

Вы должны использовать транзакцию . Таким образом, вы можете откатить его, если возникнет ошибка.

Как именно вы будете реализовывать транзакцию, зависит от базы данных, которую вы используете. Что это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...