我正在从MySQL复制到MDB,遇到了一个奇怪的问题。我有个疑问
cur.execute("""UPDATE SIGN_INVENTORY SET DISTRICT=?, COUNTY=?, CITY=?, ROUTE_ID=?, NEXT_INSPECTION_DATE=?, INSP_FREQ=?, GPS_LATITUDE=?, GPS_LONGITUDE=?,
FABRICATOR=?, CONTRACTOR=?, DATE_ERECTED=?, DATE_LAST_MODIFIED=?, BRIDGE_ID=?, STATE_PLANE=?, BEGIN_NODE=?, BEGIN_OFFSET=?,
SPAN_LENGTH=?, NUMBER_SIGNS=?, TOTAL_SIGN_AREA=?, WALKWAY_LENGTH=?, STRUCTURE_TYPE=?, MESSAGE_TYPE=?, VMS_TYPE=?, MATERIAL_TYPE=?,
CHORD_TYPE=?, POLE_TYPE=?, FOUNDATION_TYPE=?, LAST_INSPECTOR=?, LMOD_USERID=?, LMOD_DATE=?, LMOD_TIME=?
WHERE STRUCTURE_NUMBER=?""", (row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10],
row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20],
row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28], row[29], row[30],
row[31], row[0]))
我发现错误了
^{pr2}$现在如果我删除最后一行[0],我得到
'HY000', 'The SQL contains 32 parameter markers, but 31 parameters were supplied'
两个数据库中的列完全相同。我在多个其他地方做了非常相似的查询,它们工作得很好。在
我想出来了。在MySQL中,日期字段的存储方式如下
这导致参数计数中断。我需要像这样将值转换为char
^{pr2}$嘿,伙计,什么都不用做,只要传递31个参数就行了
看1到31是total 31,在u传递行[0]之后,这使得参数总数为32,这就是为什么u会得到这个错误。在
相关问题 更多 >
编程相关推荐