SQL 当我的代码看起来格式正确时,更新不断出现语法错误
SQL update keeps spitting syntax errors when my code seems properly formatted
我有这段代码试图用 ID
= m
更新 date
列。 m
是一个整数,因为它应该是,对于 date
我已经尝试了 string
和 datetime.date
.
sql = '''UPDATE DaByDay
SET Date = ?
WHERE ID = ?'''
crsr.execute(sql, date, m)
cnxn.commit()
但我不断得到
Traceback (most recent call last):
File "C:\Users\USERNAME\Desktop\database test.py", line 47, in
crsr.execute(sql, date, m)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. (-3503) (SQLExecDirectW)')
现在我该如何解决这个问题?
应避免使用保留字作为名称。日期是 Access 中的保留字。将字段名称括在方括号 [Date]
.
中
此外,如果名称使用space或特殊字符也用括号括起来。
可能与问题无关,但可以使用引号代替三撇号。
考虑到日期文字的正确语法是 'YYYY-MM-DD'(引号内)或#mm/dd/yyyy#(井号内),您应该尝试以这种方式提供。此外,Date 是 Access 中的保留字,您应该在其周围使用方括号。
我有这段代码试图用 ID
= m
更新 date
列。 m
是一个整数,因为它应该是,对于 date
我已经尝试了 string
和 datetime.date
.
sql = '''UPDATE DaByDay
SET Date = ?
WHERE ID = ?'''
crsr.execute(sql, date, m)
cnxn.commit()
但我不断得到
Traceback (most recent call last):
File "C:\Users\USERNAME\Desktop\database test.py", line 47, in
crsr.execute(sql, date, m)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. (-3503) (SQLExecDirectW)')
现在我该如何解决这个问题?
应避免使用保留字作为名称。日期是 Access 中的保留字。将字段名称括在方括号 [Date]
.
此外,如果名称使用space或特殊字符也用括号括起来。
可能与问题无关,但可以使用引号代替三撇号。
考虑到日期文字的正确语法是 'YYYY-MM-DD'(引号内)或#mm/dd/yyyy#(井号内),您应该尝试以这种方式提供。此外,Date 是 Access 中的保留字,您应该在其周围使用方括号。