Na weil erst die execute-Funktion ausgeführt wird und du dann versuchst auf das Ergebnis String-Formatierung anzuwenden.
So funktioniert es:
Code: Alles auswählen
c.execute ("""
CREATE TABLE %s
(
ID INTEGER AUTO_INCREMENT,
PRIMARY KEY ( `ID` )
)
""" % testtablename)
Wenn du allerdings Werte einfügen möchtest, dann beachte den zweiten Parameter der execute-Methode.
"Geht nicht" ist übrigens eine sehr ungenaue Fehlerbeschreibung. Python liefert oftmals ausgezeichnete Fehlermeldungen, die sollte man mit angeben.
Das Leben ist wie ein Tennisball.