如果为空,则加载数据本地文件'/mnt/sample.txt'?

时间:2019-04-29 10:18:56

标签: mysql mariadb pymysql

使用gpython连接器尝试将文本文件中的数据加载到SQL表已经2周了。我能够成功加载数据而无需任何条件,例如:

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

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

我尝试使用if else语句,但由于SQL查询的限制而未能成功。以下是我的基本代码,仅在表为空(以前未加载)的情况下,才希望对load语句执行条件。

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加载?

1 个答案:

答案 0 :(得分:0)

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

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

   SELECT EXISTS (SELECT 1 FROM table);

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