使用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)) 

功能不认识第三行,当我像评论一样,查询不理解表。有另一种方法来做这个查询?

+0

'''''''''''ENCLOSED BY'''“'结尾是Python字符串,你需要转义它 – Barmar

+0

是的,这是正确的,但数据被封闭在这种方式。在此之前修改 –

+0

您需要转义它,以便您拥有正确的Python字符串语法。 – Barmar

下面跟随我找到了解决办法:

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调用表)。

另一件事程序只有在提交后才接受更改。

适合我的唯一解决方案就是这个。感谢您的支持。