Zeilenumbruch in MySQL-Statement erzwingen

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
Caldar
User
Beiträge: 46
Registriert: Sonntag 17. Mai 2009, 18:20

Es ist ja eigentlich ein leichtes, in die nächste Zeile zu springen, wenn 1 Zeile vom Platz her nicht ausreicht. (nutze Eclipse mit PyDev als IDE)
Bei MySQL-Statements tue ich mir diesbezüglich aber schwer
Das ganze Statement sieht so aus:

Code: Alles auswählen

cursor.execute("CREATE TABLE IF NOT EXISTS ABC (name_short TEXT, name_long TEXT, eds TEXT, fact INTEGER, loc TEXT, ab TEXT, IMS TEXT")
Wenn ich keinen Zeilenumbruch mache, schreibt er logischerweise alles in 1 Zeile, was natürlich nicht komplett auf den Schirm passt.
Wie kann ich trotzdem einen Umbruch bei obigem Statement erzwingen, so dass es auf 2 (oder mehr) Zeilen aufgeteilt wird? Wenn ich einfach nach einem Komma Return drücke, springt er an den Anfang der nächsten Zeile, komme also so nicht weiter.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

[wiki]Lange Zeilen im Sourcecode[/wiki]
Caldar
User
Beiträge: 46
Registriert: Sonntag 17. Mai 2009, 18:20

Das habe ich schon versucht, da bringt es mir diese Fehlermeldung, wenn ich das SQL-Statement mit \ oder mit Anführungszeichen trennen will:
(1064, "You have an error in your SQL syntax;
BlackJack

@Caldar: Zeig doch mal bwobei dieser Fehler kommt. Kann es sein, dass Du vergessen hast das zwei direkt neben- bzw. nacheinanderstehende Zeichenketteliterale *direkt* zusammegefügt werden? Also 'hallo' 'welt' ergibt nicht etwas 'hallo welt' sondern 'hallowelt'.
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

In dem SQL-Statement, das du gepostest hast, fehlt 'ne Klammer.
Folgendes geht auf jeden Fall (...bei mir ;) )

Code: Alles auswählen

import sqlite3 as sql
statement = """CREATE TABLE IF NOT EXISTS ABC (
            name_short TEXT,
            name_long TEXT, 
            eds TEXT, 
            fact INTEGER, 
            loc TEXT, 
            ab TEXT, 
            IMS TEXT
            )"""
#           ^
con = sql.connect(":memory:")
con.execute(statement)
con.commit()
con.close()
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

verstehe ich nicht, Was spricht gegen

Code: Alles auswählen

SQLTXT="""CREATE TABLE IF NOT EXISTS ABC (
  name_short TEXT, 
  name_long TEXT, 
  eds TEXT, 
  fact INTEGER, 
  loc TEXT, 
  ab TEXT, 
  IMS TEXT""")
cursor.execute(SQLTXT)
Oops, fällt dir nichts auf? Schau mal auf das Ende des Statements. Versuch mal

Code: Alles auswählen

SQLTXT="""CREATE TABLE IF NOT EXISTS ABC (
  name_short TEXT, 
  name_long TEXT, 
  eds TEXT, 
  fact INTEGER, 
  loc TEXT, 
  ab TEXT, 
  IMS TEXT)"""
Caldar
User
Beiträge: 46
Registriert: Sonntag 17. Mai 2009, 18:20

Also ich hab es folgendermaßen probiert und bekomme eine SQL-Fehlermeldung:

Code: Alles auswählen

sql = """CREATE TABLE IF NOT EXISTS WKA (
    name_short TEXT, name_long TEXT
    lat TEXT lon TEXT)"""
cursor.execute(sql)
Fehler: 1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lat TEXT lon TEXT)' at line 3")
Caldar
User
Beiträge: 46
Registriert: Sonntag 17. Mai 2009, 18:20

Also ich hab es folgendermaßen probiert und es funktioniert

Code: Alles auswählen

sql = """CREATE TABLE IF NOT EXISTS WKA (
    name_short TEXT, name_long TEXT,
    lat TEXT, lon TEXT)"""
cursor.execute(sql)
Habe auch einen Kommafehler übersehen, danke für Eure Hilfe!
Antworten