Я использовал инструмент командной строки sqlite для .import
файлов CSV. Время от времени у нас будут проблемы с данными в CSV, например, нарушение внешних ограничений.
Файлы CSV имеют большой размер (~ 10 тыс. Записей). SQLite будет продолжать попытки записи по очереди. Эти данные таковы, что при наличии одной ошибки большинство, если не все, будут иметь одинаковую ошибку. В результате:
- Журналы сложны в использовании и
- Случаи возникновения ошибок занимают много времени (~ 10 × нормально).
Итак, я бы хотел, чтобы он завершился при первой ошибке.
Соответствующая часть используемых скриптов выглядит следующим образом:
PRAGMA foreign_keys = ON;
BEGIN TRANSACTION;
-- (Some related SQL to setup other data goes here)
.mode csv
.separator ,
.import filename.csv table_name
COMMIT;
Есть ликакой-нибудь способ заставить инструмент командной строки прекратить импорт при появлении первой ошибки?
Я посмотрел в pragmas , но не увидел ничего применимого, и .import
*Команда 1023 *, похоже, не имеет возможности для этого. Команда .bail on
не приводит к ее остановке в строке ошибки CSV, только для команды, следующей за CSV .import
.