sqlite3 - execute mit Parameter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
losgehts
User
Beiträge: 20
Registriert: Montag 8. Juni 2009, 01:00

Hallo,

ich sehe irgendwie den Wald vor lauter Bäumen nicht mehr (bin Anfänger).

Ich möchte gerne die cursor.execute()-Methode verwenden, doch bei mir haut das mit dem Einsetzen der Parameter in den SQL-String nicht hin (meine Versionen: Python 3.6.9, sqlite3 2.6.0).

Code: Alles auswählen

import sqlite3

conn = sqlite3.connect('die.sqlite')
cursor = conn.cursor()
t = ('tabe',)
sql = "CREATE TABLE ? (a TEXT, b TEXT, c TEXT)"
cursor.execute(sql, t)
conn.commit()
conn.close()
Das wirft bei mir die Fehlermeldung in der cursor.execute(...)-Zeile:
sqlite3.OperationalError: near "?": syntax error
... und ich komm nicht drauf, was ich falsch mache?

Kann mir jemand die Augen öffnen?

Vielen Dank im Voraus!
Grüße,
Ulrich
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Tabellennamen sind fix. Die kann man nicht per Parameter setzen. Warum möchtest Du variable Tabellennamen?
losgehts
User
Beiträge: 20
Registriert: Montag 8. Juni 2009, 01:00

Hallo Sirius3,

danke für deine Antwort!

Ich wollte in einer Schleife über Tabellen iterieren, dabei zu allererst mit CREATE TABLE IF NOT EXISTS sicherstellen, dass die Tabelle auch existiert etc.
Mit nicht variablen Tabellennamen kann ich auch leben :-) .

Vielen Dank für deine Antwort, ich war schon am verzweifeln.

Grüße, Ulrich
Benutzeravatar
__blackjack__
User
Beiträge: 14054
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@losgehts: Aber da ist ja nicht nur der Tabellenname variabel sondern auch der Rest, also am Ende so viel das es komplizierter ist Variablen für alles einzusetzen als einfach die kompletten CREATE-Anweisungen hin zu schreiben.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten