Mysql - insert new line?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
cbesi
User
Beiträge: 41
Registriert: Dienstag 11. August 2020, 22:04

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?
cbesi
User
Beiträge: 41
Registriert: Dienstag 11. August 2020, 22:04

Meistens wenn man meint man kommt nicht weiter, kommt der Einfall.
Autoindex war nicht aktiviert in der DB, auf dem Primary key.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Warum eigentlich ein REPLACE INTO?
Das wäre ja ein Ersetzen und kein Einfügen eine neuen Datensatzes, wie du in deinem Text beschreibst.
cbesi
User
Beiträge: 41
Registriert: Dienstag 11. August 2020, 22:04

Ja das ist mir bewusst. Der Inhalt wird jeden Tag überschrieben, es ist also richtig mit dem replace. Danke für den Hinweis.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

@cbesi: Ich bin mir ziemlich sicher, dass dein Code nicht das tut, was du denkst.
Antworten