Seite 1 von 1

UPDATE löscht Tabelle

Verfasst: Freitag 6. September 2013, 09:30
von joh#
Hallo,

ich habe eine mySQL-DB/Tabelle mit folgendenSpalten:
messreihe, wert_snr1, wert_snr2, wert_snr3, wert_snr4, wert_snr5, wert_snr6, wert_snr7, wert_snr8, wert_snr9, wert_snr10, wert_snr11, wert_snr12, wert_snr13, wert_snr14, wert_snr15, wert_snr16, wert_snr17, wert_snr18, timestamp
und möchte mit python 2.7.4 darauf zugreifen. Anlegen, Lesen und INSERT funktioniert, nur bei UPDATE wird, obwohl ich nur EINE Zeile ändern möchte,
der gesamte Tabelleninhalt gelöscht (keine SQL-Syntax-Fehlermeldung.)

Code: Alles auswählen

con=MySQLdb.connect(host='172.11.62.150', user='paul', passwd='12345' )
cursor=con.cursor()
cursor.execute("""USE sensordaten""")   #DB
tabelle = "messwerte"                   #Tabelle

sqlstring='UPDATE messwerte SET wert_snr1=0.869508802164, wert_snr2=0.446390198702, wert_snr3=0.280751483028, wert_snr4=0.744582745463, wert_snr5=0.924732670632, wert_snr6=0.960909248335, wert_snr7=0.932408854411, wert_snr8=0.639911961156, wert_snr9=0.171811150687, wert_snr10=0.0391032965384, wert_snr11=0.425784550019, wert_snr12=0.50048232447, wert_snr13=0.553194036535, wert_snr14=0.0794973101156, wert_snr15=0.256941664108, wert_snr16=0.67235956531, wert_snr17=0.506887757768, wert_snr18=0.930629072231, wert_snr19=0.985587890287, timestamp=255648.759 WHERE messreihe = 1'
cursor.execute(sqlstring)
con.commit()
Gruß
joh

Re: UPDATE löscht Tabelle

Verfasst: Freitag 6. September 2013, 10:32
von Sirius3
Hallo joh#,

mit UPDATE kann man keinen Tabelleninhalt löschen. Wieviele Zeilen erfüllen denn "messreihe=1" bei Dir?
Ich hoffe mal, das ist nur ein Beispiel und Deine UPDATE-Statements sehen nicht tatsächlich so aus.

Re: UPDATE löscht Tabelle

Verfasst: Freitag 6. September 2013, 10:34
von BlackJack
@joh#: Das kann eigentlich nicht sein. Sofern man da in der DB nicht irgendwelche Trigger gesetzt hat, die komische Sachen machen.

Die vielen durchnummerierten Spaltennamen sehen übrigens nach einem Entwurfsfehler aus. Da würde man eher eine Tabelle mit den Spalten `messreihe`, `sensor_nr`, `value`, `timestamp` erwarten. Falls `messreihe` der Primärschlüssel ist, dann `timestamp` in einer eigenenen Tabelle, damit der nicht redundant gespeichert wird.

Re: UPDATE löscht Tabelle

Verfasst: Freitag 6. September 2013, 11:24
von joh#
sorry my fault :(
ich hatte, da ich vorher nur mit INSERT gearbeitet hatte,
noch ein "DELETE FROM messwerte " drin
soweit ist die Welt wieder in Ordnung
aber
Ich hoffe mal, das ist nur ein Beispiel und Deine UPDATE-Statements sehen nicht tatsächlich so aus.
@Sirius3: doch sehen sie. Pro Zeiteinheit sollte ein DS mit den ganzen Sensorwerten und der Zeit geschrieben werden.
Aber ich kann es ja auch mal mit BlackJacks Struktur versuchen, mit `messreihe` als Primärschlüssel .

Danke
joh