使用LOAD DATA LOCAL INFILE与动态表
问题描述:
我想直接使用查询的蟒蛇来更新我的数据库,但我需要做大量的时间在不同的表:使用LOAD DATA LOCAL INFILE与动态表
def load_data(self, path, table):
print table
print path
cursor = self.mariadb_connection.cursor()
cursor.execute(" LOAD DATA LOCAL INFILE %s INTO TABLE %s"
" FIELDS TERMINATED BY ','"
" ENCLOSED BY '"'"
" LINES TERMINATED BY '\n'"
" ignore 1 lines ",
(path, table))
功能不认识第三行,当我像评论一样,查询不理解表。有另一种方法来做这个查询?
答
下面跟随我找到了解决办法:
cursor = self.mariadb_connection.cursor()
cursor.execute("LOAD DATA LOCAL INFILE % s"
"INTO TABLE " + str(table) + " "
"FIELDS TERMINATED BY ',' "
"ENCLOSED BY '\"' "
"LINES TERMINATED BY '\n' "
"ignore 1 lines ",
path)
self.mariadb_connection.commit()
三个报价可能是一个标准的数据库了很好的解决,但我不知道为什么,当我们使用上MariaDB的查询是不允许的动态表(使用%s调用表)。
另一件事程序只有在提交后才接受更改。
适合我的唯一解决方案就是这个。感谢您的支持。
'''''''''''ENCLOSED BY'''“'结尾是Python字符串,你需要转义它 – Barmar
是的,这是正确的,但数据被封闭在这种方式。在此之前修改 –
您需要转义它,以便您拥有正确的Python字符串语法。 – Barmar