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
しかし、第一に、これは私が必要とするものに対してやり過ぎであり、第二に、それらの 1 つを単純な文字列として実行するにはどうすればよいでしょうか?