Y at-il un comportement spécial lors de la décrémentation d'une variable dans la clause except? sid
continue à incrémenter jusqu'à ce qu'il entre dans la clause d'exception, puis il conserve simplement la même valeur pour la durée de repos de la boucle for
.python comportement peu clair lors de la décrémentation dans try-except
7 sur 105 tente jeter une exception
il n'y a pas d'impression "Fehlercode:", errorcode
Voici mon code:
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
résolu: après la query2 lance sa première exception la première requête provoque également une (même) IntegrityError et puis il va juste et-vient comme colleen a dit
Salut, j'ai essayé de ne pas le décrémenter lorsque l'exception est levée, mais j'ai des trous dans les identifiants. l'exception est levée lors de l'exécution query2 (la table (colonne) a un index unique) – Mirko
Je suis confus par ce que vous entendez par "lorsque l'exécution query2 (la table (colonne) a un index unique" - si vous connaissez le problème – Colleen