Mysql CREATE TABLE funktioniert nicht

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
kiaralle
User
Beiträge: 201
Registriert: Donnerstag 19. August 2021, 19:11

Hi,
ich benötige mal eure Hilfe.
Beim unten aufgeführten Code, bekomme ich immer eine Fehlermeldung.
Kann mich mal einer mit der Nase drauf tippen woran das liegt?
Wenn ich die anzulegenden Felder nicht untereinander stelle, es sind ca. 100, funktioniert das.

Gruß Ralf.
File <unknown>:28
statement ="CREATE TABLE master_register
^
SyntaxError: unterminated string literal (detected at line 28)

Code: Alles auswählen

# Datenbankerstellen
cursor = connection.cursor()
statement ="CREATE TABLE master_register
(
Status int(6),
Vpv1 int(6),
Vpv2 int(6),
Ppv1H int(6),
Ppv1L int(6),
Ppv2H int(6),
Ppv2L int(6),
Buck1Curr int(6),
Buck2Curr int(6),
OP_WattH int(6),
OP_WattL int(6),
OP_VAH int(6),
OP_VAL int(6)
);"
cursor.execute(statement)
connection.commit()
Sirius3
User
Beiträge: 18418
Registriert: Sonntag 21. Oktober 2012, 17:20

Eine String der mit " eingefasst ist, darf keinen Zeilenumbruch enthalten. Dafür gibt es Strings die in """ eingefasst werden.
Übrigens sollten auch Feldnamen in Datenbanken sprechend benannt sein, Vpv1 oder OP_VAH und all die anderen, sind das nicht.
Benutzeravatar
__blackjack__
User
Beiträge: 14415
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Und kann es sein, dass da eine ID fehlt?
“The city's central computer told you? R2D2, you know better than to trust a strange computer!” — C3PO
kiaralle
User
Beiträge: 201
Registriert: Donnerstag 19. August 2021, 19:11

Hi an alle,

Der Tipp mit den """ wegen Zeilenumbruch war richtig :-)
Die Feldnamen ändere ich ab.
phpmyadmin hätte damit keine Probleme.

Gruß Ralf
oldboyJR
User
Beiträge: 99
Registriert: Donnerstag 28. März 2024, 16:19

Wenn man etwas schon createt hat dann kann man es nicht nochmal. Vergewissere dich das es nicht vorhanden ist.
Benutzeravatar
sparrow
User
Beiträge: 4658
Registriert: Freitag 17. April 2009, 10:28

@oldboyJR: Das hat nichts mit dem Problem hier zu tun.
oldboyJR
User
Beiträge: 99
Registriert: Donnerstag 28. März 2024, 16:19

Da fehlt was
vergleiche mit

Code: Alles auswählen

def tabelle_erzeugen():# dieser schritt kann nur einmal pro Datenbank ausgefürt
#werden ansonsten bekommt man nur Fehlermeldungen
    db = mysql.connector.connect(
        host="localhost",
        user="root",
        password="",
        database="Boomer_obj",
        port="3306")
    cursor = db.cursor()
    # Tabelle 'benutzer' erzeugen
    sqlStmt = "CREATE TABLE benutzer (" \
        "id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY," \
        "vorname VARCHAR(30) NOT NULL," \
        "nachname VARCHAR(30) NOT NULL" \
        ")"
    cursor.execute(sqlStmt)
    for tbl in cursor:
            print(tbl)
Antworten