我试图用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和连接器目前不适用于您提到的条件操作。
您最好的方法是:在一个查询中查询表中的内容,然后在下一个查询中执行加载。查找表是否存在且为空的最佳查询:
SELECT EXISTS (SELECT 1 FROM table);
这将查找表中的任何行。如果为空则返回零,否则返回一。一旦知道表是否存在且是空的,就可以加载它。