我试图直接在python上使用查询来更新我的数据库,但我需要在不同的表中做很多时间:
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))
该函数无法识别第三行,当我像注释一样,查询不理解该表。有另一种方法可以进行此查询吗?
答案 0 :(得分:0)
下面是我找到的解决方案:
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()
三个引号对于标准数据库来说可能是一个非常好的解决方案,但我不知道为什么当我们使用动态表(使用%s来调用表)时,不允许在mariadb上进行查询。
程序在提交后才接受更改。
适合我的唯一解决方案就是这个。感谢您的支持。