LOAD DATA LOCAL INFILE' / mnt / sample.txt'如果为空?

问题描述 投票:0回答:1

我试图用gpython连接器将数据从文本文件加载到SQL表中已经有两周了。我能够成功加载数据,没有任何条件,如:

loadData35= "LOAD DATA LOCAL INFILE  '%s' "  %completePath35 + "INTO TABLE %s" %tblname35

但现在我只想在表空的情况下加载数据。

我试图使用if else语句,但由于SQL查询的限制而未成功。以下是我的基本代码,我想在load语句中应用if条件,只有当表为空(之前未加载)时才执行它。

sql35= 'CREATE TABLE if not exists %s (Datum varchar(50), Uhrzeit varchar(13), UpsACT_V varchar(6), UpsPRE_V varchar(6), IpsACT_A varchar(6), IpsPRE_A varchar(6))' %(tblname35)

myCursor.execute(sql35)
myConnection.commit()

loadData35= "LOAD DATA LOCAL INFILE  '%s' "  %completePath35 + "INTO TABLE %s" %tblname35
myCursor.execute(loadData35)
myConnection.commit()

我想知道我们能够使用python连接器进行这种条件SQL加载吗?

mysql mariadb pymysql
1个回答
0
投票

MySQL,MariaDB和连接器目前不适用于您提到的条件操作。

您最好的方法是:在一个查询中查询表中的内容,然后在下一个查询中执行加载。查找表是否存在且为空的最佳查询:

   SELECT EXISTS (SELECT 1 FROM table);

这将查找表中的任何行。如果为空则返回零,否则返回一。一旦知道表是否存在且是空的,就可以加载它。

© www.soinside.com 2019 - 2024. All rights reserved.