Der zweite funktioniert nicht, weil Sie drei Platzhalter innerhalb der Abfragezeichenfolge verwenden und nur eine Variable für die Interpolation bereitstellen.
updateIndexMySQLQuery = """UPDATE %s
SET numberID=%%s WHERE numberID=%%s;""" % (tableName,)
Auf diese Weise erwartet der Zeichenfolgenformatierungsmechanismus nicht, dass Sie 3 Werte angeben, da die Prozentzeichen "escaped" werden (Schande über mich für die erste Version der Antwort).