我是Python新手(习惯于C#),需要使用Access数据库(.accdb)。
构建SQL查询的语法对我来说也有点奇怪。
我有以下内容:
def updateSQL(table,keyField,keyVal,field,newVal):
sqlCommand = "UPDATE " + table + " SET (?)=(?) WHERE (?)=(?);"
crsr.execute(sqlCommand, (field, newVal, keyField, keyVal))
crsr.commit()
print("Tables update successfully")
但由于某种原因,我收到以下错误:
[Microsoft] [ODBC Microsoft Access驱动程序] UPDATE中的语法错误 声明
我在声明中尝试了一些不同的东西,我不能为我的生活找出错误的地方,任何想法?
答案 0 :(得分:3)
'?'标记用于值,但列名不是值。您永远不想将值放入SQL中,但您需要放置列。尝试类似:
sql = 'update {} set {}=? where {}=?'.format(table, field, keyField)
cursor.execute(sql, newVal, keyVal)