我有解析一些数据的脚本并将数据保存到Output.csv(Output.csv位于服务器上(/ tmp))然后我想将此Output.csv导入到MySQL现有表中。
with open("/tmp/Output.csv", "w",0600) as text_file:
text_file.write(csv)
mydbs.connect()
mydbs.sqlcmd("""LOAD DATA LOCAL INFILE '/tmp/Output.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ;""")
text_file.close()
os.remove("/tmp/Output.csv")
SQL查询以某种方式工作,例如,如果我将“my_table”更改为“my_tableasd”,我会收到错误:
ProgrammingError:(1146,“表'dbs.my_tableasd'不存在”)。
此外,我可以做任何类型的选择,但这种导入根本不起作用。我没有收到任何错误或警告......但是当我查看PHPmyAdmin时,没有导入任何数据。
我尝试通过PhpMyAdmin导入Output.csv,它可以工作..
我也尝试将local-infile = 1设置为my.cnf([mysql],[mysqld])但没有发生任何事情
非常感谢
答案 0 :(得分:1)
在尝试导入文件之前关闭该文件。
答案 1 :(得分:0)
单独写作和处理:
with open("/tmp/Output.csv", "w",0600) as text_file:
text_file.write(csv)
mydbs.connect()
mydbs.sqlcmd("""
LOAD DATA LOCAL INFILE '/tmp/Output.csv'
INTO TABLE my_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' ;
""")
os.remove("/tmp/Output.csv")
答案 2 :(得分:0)
问题解决了,我试图关闭数据库,它的工作原理。这很有趣,因为我从来没有在整个项目中这样做,而且我一直在使用dbs,但也许这个导入需要提交或者像那样
mydbs.close()