Привет, мне нужно знать, как вставить большой объем текста в SQLite, потому что я создаю приложение для книги с Ionic - PullRequest
0 голосов
/ 31 октября 2019

"Я занимаюсь разработкой мобильного приложения с помощью Ionic для книги с большим содержанием, группирующей по
несколько частей, подраздел, заголовок и главу. Я решил использовать SQLite, и я ищу способзагрузить все его содержимое в мою базу данных SQLite, и если у кого-то есть идея или предложение, чтобы помочь мне сделать все хорошо, я буду в восторге. "

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Ниже показано, как использовать модуль python sqlite3 для импорта текстового файла (UTF-8):

import sqlite3

def create_table():
    conn.execute("""CREATE TABLE IF NOT EXISTS mytext( mytext TEXT );""")

def insert_file(filename):
    sql = "INSERT INTO mytext(mytext) VALUES(?)"

    cursor.execute(sql, (open(filename, "r").read(),))
    conn.commit()

db_file_name = 'text-file.db'
conn = sqlite3.connect(db_file_name)
cursor = conn.cursor()
create_table()

insert_file("text.txt")

conn.close()

(протестировано с python3.)

0 голосов
/ 31 октября 2019

Существует несколько способов импортировать текстовый файл, например, как BLOB, построчно, используя режим sqlite «архив» и т. Д.

Если вам нужен весь файлв качестве отдельной ячейки TEXT в таблице, затем (с учетом ограничения, описанного ниже) вы можете использовать .import, тщательно выбирая значения для разделителей.

Многобайтовые разделители не поддерживаются при импорте, но могут использоваться управляющие символы, такие как Control-A и Control-B.

Таким образом, вы можете действовать следующим образом:

CREATE TABLE text("text" text)';
.separator ^A ^B 
.import text.txt text

, где ^A должен быть заменен литералом control-A, и аналогично для ^B.

Ограничение

Максимальное количество байтов в строке или BLOB вSQLite определяется макросом препроцессора SQLITE_MAX_LENGTH. Значение этого макроса по умолчанию составляет 1 миллиард (1 тысяча миллионов или 1 000 000 000).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...