遞減except子句中的變量時是否有任何特殊行爲? sid
會一直增加,直到第一次進入異常子句爲止,然後它在for
循環的其餘持續時間內保持相同的值。python不明確的行爲,在嘗試中遞減時除外
7了105次嘗試拋出一個異常
沒有打印 「Fehlercode:」 錯誤代碼
這裏是我的代碼:
for bid in range(bidStart, bidEnd + 1):
for syn in getSynsProBeitrag(bid):
try:
sid += 1
query = "INSERT INTO zuord (bid, hid, sid) VALUES(%s, %s, %s)"
cursor.execute(query, [bid, hid, sid])
query2 = "INSERT INTO synonyme (synonym) VALUE (%s)"
cursor.execute(query2, syn)
except MySQLdb.IntegrityError, message:
errorcode = message[0]
if errorcode == 1062:
sid -= 1
print sid
else:
print "Fehlercode:", errorcode
解決:在QUERY2拋出後,它的第一個例外第一個查詢也造成了(同一個)IntegrityError,然後它就像Colleen所說的那樣來回移動
嗨,我試圖只是不會遞減,當異常被拋出,但後來我在ID的差距。當執行query2(表(列)有一個唯一索引)時拋出異常 – Mirko
我很困惑你的意思是「什麼時候執行query2(表(列)有一個唯一索引」) - 如果你知道問題只是來自query2,然後把try /除了在query2之外,並且將增量移到try之外。 – Colleen