Tôi đang sử dụng Python để ghi vào cơ sở dữ liệu postgres:
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
Nhưng vì một số hàng của tôi giống hệt nhau, tôi gặp lỗi sau:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
Làm cách nào tôi có thể viết câu lệnh 'INSERT trừ khi hàng này đã tồn tại' câu lệnh SQL?
Tôi đã thấy những tuyên bố phức tạp như thế này được đề xuất:
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
Nhưng thứ nhất, đây có phải là quá mức cho những gì tôi cần không, và thứ hai, làm thế nào tôi có thể thực thi một trong những chuỗi đó như một chuỗi đơn giản?