Seite 1 von 1

Mysql - insert new line?

Verfasst: Montag 29. November 2021, 21:47
von cbesi
Hallo ich habe ein Script, welches Daten aus einer Datenbank holt, in eine CSV schreibt und dannach die Daten in eine MYSQL übertragen soll.

Soweit funktioniert es auch.

Aber beim übertragen in die Mysql überschreibe ich mir immer die Zeile.

Sprich der Insert hat später nur eine Zeile:

Hier ein Auszug aus meinem Code.

Code: Alles auswählen


curmysql = cnx.cursor()

#Ergebnis anzeigen und in csv schreiben und in MYSQL schreiben

with open((dnamezusammen + ".csv"), "w", encoding='utf-8') as outfile:
    writer = csv.writer(outfile, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerow([i[0] for i in cur.description])



    for row in cur:

        writer.writerow(row)

        short = (row)
        print(short)

        curmysql.execute('REPLACE INTO helferanwesend(Name, Vorname, Datum, Helfernr)' \
                       'VALUES("%s", "%s", "%s", "%s")'
                       , short)




cnx.commit()
conn.close()




cnx.close()
Kann mir jemand verraten was ich tun muss?

Re: Mysql - insert new line?

Verfasst: Montag 29. November 2021, 21:56
von cbesi
Meistens wenn man meint man kommt nicht weiter, kommt der Einfall.
Autoindex war nicht aktiviert in der DB, auf dem Primary key.

Re: Mysql - insert new line?

Verfasst: Dienstag 30. November 2021, 06:36
von sparrow
Warum eigentlich ein REPLACE INTO?
Das wäre ja ein Ersetzen und kein Einfügen eine neuen Datensatzes, wie du in deinem Text beschreibst.

Re: Mysql - insert new line?

Verfasst: Dienstag 30. November 2021, 13:06
von cbesi
Ja das ist mir bewusst. Der Inhalt wird jeden Tag überschrieben, es ist also richtig mit dem replace. Danke für den Hinweis.

Re: Mysql - insert new line?

Verfasst: Dienstag 30. November 2021, 13:58
von Sirius3
Um REPLACE aber richtig anwenden zu können, brauchst Du einen Primary-Key, ist das bei Dir Name/Vorname? Was anderes steht ja nicht in der Datei.

Re: Mysql - insert new line?

Verfasst: Dienstag 30. November 2021, 14:40
von sparrow
@cbesi: Ich bin mir ziemlich sicher, dass dein Code nicht das tut, was du denkst.