Seite 1 von 1

sqlite3 - execute mit Parameter

Verfasst: Samstag 13. März 2021, 18:32
von losgehts
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

Re: sqlite3 - execute mit Parameter

Verfasst: Samstag 13. März 2021, 18:36
von Sirius3
Tabellennamen sind fix. Die kann man nicht per Parameter setzen. Warum möchtest Du variable Tabellennamen?

Re: sqlite3 - execute mit Parameter

Verfasst: Samstag 13. März 2021, 19:25
von losgehts
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

Re: sqlite3 - execute mit Parameter

Verfasst: Samstag 13. März 2021, 23:29
von __blackjack__
@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.