繁体   English   中英

如何通过终端在mysql中连续上传文件的整个文本

[英]how to upload whole text of a file in a row in mysql through terminal

如何在数据库中的一行中上载文本文件的整个文本,文本将被分割并存储在后续行中。

这是我的SQL文件的代码,数据库名称是info,其中包含名为info的表,该表具有两列des1和des2,其字段为VARCHAR(3000):

    use info;

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

    select * from(info);

我得到以下输出:

des1    des2
NULL    NULL

我还拍了一张显示输出的图像

我希望文件中的所有文本都在数据库的单行中,这必须在终端中完成

LOAD DATA INFILE用于结构化数据。 对于非结构化数据,请使用LOAD_FILE()

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

您如何形成要插入的字符串可能存在问题。 您可以借助编程语言轻松地做到这一点。

我提供了一个可以在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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM