Ich verwende Python, um in eine Postgres-Datenbank zu schreiben:
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
Da jedoch einige meiner Zeilen identisch sind, wird der folgende Fehler angezeigt:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
Wie kann ich eine SQL-Anweisung "INSERT" schreiben, wenn diese Zeile nicht bereits vorhanden ist?
Ich habe komplexe Aussagen wie diese empfohlen gesehen:
IF EXISTS (SELECT * FROM invoices WHERE invoiceid = '12345')
UPDATE invoices SET billed = 'TRUE' WHERE invoiceid = '12345'
ELSE
INSERT INTO invoices (invoiceid, billed) VALUES ('12345', 'TRUE')
END IF
Aber erstens ist dies ein Overkill für das, was ich brauche, und zweitens, wie kann ich eine davon als einfache Zeichenfolge ausführen?