как загрузить весь текст файла подряд в mysql через терминал - PullRequest
0 голосов
/ 19 апреля 2019

Как загрузить весь текст текстового файла в строку в базе данных, текст разделяется и сохраняется в последующих строках.

Это код моего файла SQL, имя базы данных - это информация, содержащая таблицу с именем info, имеющая два столбца des1 и des2, имеющие поле VARCHAR (3000):

    use info;

    INSERT INTO info (des1) VALUES (LOAD_FILE('eng.txt'));

    select * from(info);

Я получаю следующий вывод:

des1    des2
NULL    NULL

Я также прикрепил изображение, показывающее вывод

Я ожидаю, что весь текст в файле будет в одной строке базы данных, это имеетдолжно быть сделано в терминале

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Может быть проблема с тем, как вы формируете строку, которая должна быть вставлена. Вы можете сделать это легко с помощью языка программирования.

Я предоставляю простое решение, которое будет работать в Python.

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="password",
  database="db"
)

def fileReadToString(filename):
    result = ""
    with open(filename, "r") as ins:
        for line in ins:
            result +=(line)
    return result

file = fileReadToString('eng.txt')

mycursor = mydb.cursor()

sql = "INSERT INTO info VALUES (%s)"
val = (file)
mycursor.execute(sql, val)
mydb.commit()
print(mycursor.rowcount, "done")
1 голос
/ 19 апреля 2019

LOAD DATA INFILE для структурированных данных. Для неструктурированных данных используйте LOAD_FILE():

INSERT INTO info (des1) VALUES (LOAD_FILE('eng.txt'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...