我正在从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]))
我收到了错误
'HY000', 'The SQL contains 31 parameter markers, but 32 parameters were supplied'
现在,如果我删除最后一行[0],我得到
'HY000', 'The SQL contains 32 parameter markers, but 31 parameters were supplied'
两个数据库中的列完全相同。我在其他多个地方进行非常类似的查询,并且工作正常。
答案 0 :(得分:0)
嘿伙计没什么需要做的只是传递31个参数而不是那个
在你传递行[0]之后看到1到31总共31,这使得总参数计数为32,这就是你得到那个错误的原因。