Укажите .mode csv
перед вставкой. Также убедитесь, что временная таблица не существует, в противном случае SQLite интерпретирует первую строку CSV как данные.
Перед удалением временной таблицы перенесите строки в новую таблицу с помощью команды INSERT INTO
. В противном случае они будут потеряны.
Вы получите последовательность команд:
.open outputSQLDB.db
DROP TABLE IF EXISTS tmpTable;
.mode csv
.import input.csv tmpTable
CREATE TABLE myTbl (
id INTEGER,
field1 TEXT,
field2 INTEGER
);
CREATE INDEX id_index on myTbl (id);
INSERT INTO myTbl (id, field1, field2)
SELECT id, field1, field2
FROM tmpTable;
DROP TABLE IF EXISTS tmpTable;
Я бы также использовал
CREATE TABLE IF NOT EXISTS myTbl (
...
);
или
DROP TABLE IF EXISTS myTbl;
перед созданием таблицы.