На Mac у меня есть файл txt с двумя столбцами, один из которых является автоинкрементом в таблице sqlite:
, "mytext1"
, "mytext2"
, "mytext3"
Когда я пытаюсь импортировать этот файл, я получаю сообщение об ошибке несоответствия типа данных:
.separator ","
.import mytextfile.txt mytable
Как следует структурировать текстовый файл, чтобы он использовал автоинкремент?
Кроме того, как ввести текст, в котором будут разрывы строк? Например:
"this is a description of the code below.
The text might have some line breaks and indents. Here's
the related code sample:
foreach (int i = 0; i < 5; i++){
//do some stuff here
}
this is a little more follow up text."
Мне нужно, чтобы это было вставлено в одну строку. Что мне нужно сделать с форматированием?
Для одной конкретной таблицы я хочу, чтобы каждая из моих строк была файлом и импортировала их таким образом. Я предполагаю, что это вопрос создания своего рода командного файла, который запускает несколько операций импорта.
Редактировать
Это именно тот синтаксис, который я опубликовал, без табуляции, поскольку я использую запятую. Отсутствующий разрыв строки в моем сообщении не сделал этого очевидным. В любом случае, это дает ошибку несоответствия.





Я искал ту же проблему. Похоже, я нашел отвечать в первой части вашего вопроса - об импорте файла в таблицу с полем ID.
Итак, да, создайте временную таблицу без идентификатора, импортируйте в нее свой файл, затем вставьте… выберите, чтобы скопировать ее данные в вашу целевую таблицу. (Удалите начальные запятые из mytextfile.txt).
-- assuming your table is called Strings and
-- was created like this:
-- create table Strings( ID integer primary key, Code text )
create table StringsImport( Code text );
.import mytextfile.txt StringsImport
insert into Strings ( Code ) select * from StringsImport;
drop table StringsImport;
Не знаю, что делать с символами новой строки. Я читал некоторые упоминания о том, что импорт в режиме CSV поможет (.mode csv), но когда я попробовал, это не сработало.
Вы наверняка имеете в виду StringsImport вместо SymbolsImport в 3-й и 4-й строке вашего кода?
Я занимаюсь перемещением данных, содержащих длинные текстовые поля с различными знаками препинания (на самом деле это статьи по кодированию), в SQLite, и я экспериментировал с различным импортом текста.
Я создал базу данных в SQLite с таблицей:
CREATE TABLE test (id PRIMARY KEY AUTOINCREMENT, textfield TEXT);
затем сделайте резервную копию с помощью .dump.
Затем я вручную добавляю текст под строкой «СОЗДАТЬ ТАБЛИЦУ» в получившийся файл .dump как таковой:
INSERT INTO test textfield VALUES (1,'Is''t it great to have
really long text with various punctaution marks and
newlines');
Измените любые одинарные кавычки на две одинарные кавычки (замените «на»). Обратите внимание, что порядковый номер нужно добавить вручную (я уверен, что есть команда AWK / SED, чтобы сделать это автоматически). Измените номер автоматического приращения в строке «последовательности» в файле дампа на один, который находится над последним номером индекса, который вы добавили (у меня нет SQLite, чтобы дать вам точную строку, но это должно быть очевидно) .
С новым файлом я могу восстановить базу данных.
Если у кого-то все еще есть проблемы с этим, вы можете загрузить менеджер SQLLite.
Есть несколько, которые позволяют импортировать из файла CSV.
Вот один, но поиск в Google должен выявить несколько: http://sqlitemanager.en.softonic.com/
У меня это не работает. Я предполагаю, что единственный способ - создать настольное приложение.