[英]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.