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 aber einige meiner Zeilen identisch sind, erhalte ich folgende Fehlermeldung:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
Wie kann ich eine SQL-Anweisung "INSERT unless this row already exists" schreiben?
Ich habe gesehen, dass komplexe Aussagen wie diese empfohlen werden:
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 overkill für was ich brauche, und zweitens, wie kann ich eine von denen als eine einfache Zeichenfolge ausführen?