【发布时间】:2019-12-19 22:21:08
【问题描述】:
cHandler = myDB.cursor()
cHandler.execute('select UserId,C1,LogDate from DeviceLogs_12_2019') // data from remote sql server database
curs = connection.cursor()
curs.execute("""select * from biometric""") //data from my database table
lst = []
result= cHandler.fetchall()
for row in result:
lst.append(row)
lst2 = []
result2= curs.fetchall()
for row in result2:
lst2.append(row)
t = []
r = [elem for elem in lst if not elem in lst2]
for i in r:
print(i)
t.append(i)
for i in t:
frappe.db.sql("""Insert into biometric(UserId,C1,LogDate) select '%s','%s','%s' where not exists(select * from biometric where UserID='%s' and LogDate='%s')""",(i[0],i[1],i[2],i[0],i[2]),as_dict=1)
如果记录不存在但出现错误,我正在尝试上面的代码将数据插入到我的表中:
pymysql.err.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,了解在 '1111''、''in'' 附近使用的正确语法, ''2019-12-03 06:37:15'' 其中不存在(从第 1 行的生物特征中选择 *")
我做错了什么或有任何其他方法可以实现这一目标吗?
【问题讨论】:
-
如果您使用 mariadb 和 MySQL,为什么要标记 SQL Server?请仅标记您实际使用的RDBMS。
-
如果是我,我现在会忘记非 sql 的东西,而是专注于查询(以及与之相关的逻辑)。如果您同意这是个好主意,请参阅:Why should I provide an MCRE for what seems to me to be a very simple SQL query?
-
将列表
r复制到列表t有什么意义?
标签: python mysql database erpnext