Отчаянно по этому поводу:
Я пытаюсь ограничить ширину одного конкретного столбца в SQL-таблице шириной 7 символов. Точнее, я хотел бы обрезать каждый элемент в столбце, чтобы он был текстовым элементом не более 7 символов в ширину (если длиннее, он должен быть усечен).
Другая возможность - изменить количество символов в соответствующем столбце CSV перед созданием базы данных SQL.
Проблема: БД большая !!
(и, следовательно, изменение CSV (до создания базы данных SQL) невозможно при использовании наиболее распространенных инструментов, таких как Sublime, Atom или Excel)
Какие есть альтернативы? (может быть sqlite3 или какой-то терминал-cmd ??)
Мой CSV-файл (table1.txt
) выглядит так:
some_text,some_id,stop_name
"Hello World1","1101069:0:1","MyName1"
"Hello World2","1333332","MyName2"
"Hello World3","1452339:0","MyName3"
"Hello World4","8334342:2:0","MyName4"
Столбец some_id должен быть ограничен 7 символами, в результате чего ...
some_text,some_id,stop_name
"Hello World1","1101069","MyName1"
"Hello World2","1333332","MyName2"
"Hello World3","1452339","MyName3"
"Hello World4","8334342","MyName4"
Мой файл создания sqlite3 (creationFile.sql
) выглядит так:
CREATE TABLE table1 (some_text TEXT PRIMARY KEY, some_id TEXT, stop_name TEXT) WITHOUT ROWID;
.separator ,
.import table1.txt table1
Я использую следующий sqlite3 терминал cmd для создания БД:
sqlite3 myTable.db > creationFile.sql`
Теперь снова, ограничение ширины столбца уже может быть введено в CSV-файл. Но я думаю, что это довольно невозможно, поскольку ни один стандартный редактор не делает это больше из-за большого размера CSV-файла (> 10 миллионов строк). Есть ли способ, которым sqlite3 может справиться с этим во время создания БД? Или любой терминал cmd делает это до, во время или после создания БД ??