Estou usando o Python para escrever em um banco de dados postgres:
sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
Mas como algumas das minhas linhas são idênticas, recebo o seguinte erro:
psycopg2.IntegrityError: duplicate key value
violates unique constraint "hundred_pkey"
Como posso escrever uma instrução SQL 'INSERT, a menos que essa linha já exista'?
Eu já vi declarações complexas como esta recomendadas:
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
Mas, em primeiro lugar, é um exagero para o que eu preciso e, em segundo lugar, como posso executar um deles como uma sequência simples?