ฉันใช้ Python เพื่อเขียนไปยังฐานข้อมูล postgres:
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
แต่เนื่องจากแถวบางแถวของฉันเหมือนกันฉันได้รับข้อผิดพลาดต่อไปนี้:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
ฉันจะเขียนคำว่า 'INSERT ได้อย่างไรถ้าไม่มีคำสั่ง SQL อยู่แล้ว?
ฉันเคยเห็นข้อความที่ซับซ้อนเช่นนี้แนะนำ:
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
แต่อย่างแรกคือ overkill นี้สำหรับสิ่งที่ฉันต้องการและอย่างที่สองฉันจะรันหนึ่งในนั้นเป็นสตริงแบบง่ายได้อย่างไร