Я пытаюсь получить мои файлы данных (из которых около дюжины или около того) в таблицы в SQLite. Каждый файл имеет заголовок, и я буду получать их несколько раз в течение следующего года, поэтому я хотел бы:
- Избегайте редактирования каждого файла, чтобы удалить заголовок, когда я их получу;
- Избегайте отката от сценариев оболочки или Python для этого.
Я определяю свою таблицу и импортирую данные...
> .separator "\t"
> .headers on
> CREATE TABLE clinical(
patid VARCHAR(20),
eventdate CHAR(10),
sysdate CHAR(10),
constype INT,
consid INT,
medcode INT,
staffid VARCHAR(20),
textid INT,
episode INT,
enttype INT,
adid INT);
> .import "Sample_Clinical001.txt" clinical
> SELECT * FROM clinical LIMIT 10;
patid eventdate sysdate constype consid medcode staffid textid episode enttype adid
patid eventdate sysdate constype consid medcode staffid textid episode enttype adid
471001 30/01/1997 09/03/1997 4 68093 180 0 0 0 20 11484
471001 30/01/1997 09/03/1997 2 68093 60 0 0 0 4 11485
Моя первая мысль заключалась в том, чтобы УДАЛИТЬ оскорбительную строку, но это не сработало, как ожидалось, вместо этого удалила всю таблицу...
> DELETE FROM clinical WHERE patid = "patid";
> SELECT * FROM clinical LIMIT 3;
>
Я получил синтаксис для проверки равенства неправильно? Я не уверен; документы, похоже, не различают их. Я думал, что попробую еще раз...
> .import "Sample_Clinical001.txt" clinical
> SELECT * FROM clinical LIMIT 3;
patid eventdate sysdate constype consid medcode staffid textid episode enttype adid
patid eventdate sysdate constype consid medcode staffid textid episode enttype adid
471001 30/01/1997 09/03/1997 4 68093 180 0 0 0 20 11484
471001 30/01/1997 09/03/1997 2 68093 60 0 0 0 4 11485
> DELETE FROM clinical WHERE patid == "patid";
> SELECT * FROM clinical LIMIT 3;
>
Я даже на правильном пути здесь или я делаю что-то глупое?
Я бы ожидал, что будет простой вариант пропустить строку заголовка при вызове .import
, поскольку строки заголовков в текстовых файлах являются довольно распространенной ситуацией.