2017-05-18 3 views
1

私はfacebookページから情報を得るためにpostgres(psycopg2)とpythonを使用しています。 jsonオブジェクトを取得し、挿入クエリ文字列を作成して連結するために任意の投稿を繰り返し処理します。一部のユーザーと同じように、次のエラーが発生しました。エラー:キーはすでに存在します

ERROR: A duplicate key value violates the unique constraint "fb_post_pkey" 
DETAIL: Key (id) = (xxx) already exists. 

クエリをコミットするにはどうすればよいですか? jsonオブジェクトから重複キーを削除できますか?

+0

ポストサンプルデータを使用してこれを処理するためにデータベースを使用することです

try: # sql insert command here except IntegrityError: # tell the user here. 

が何であるかに応じて、それを処理するには2つの方法があります。 –

+1

制約名から 'ON CONFLICT DO'を使うことができると信じています –

答えて

2

これは、データベースが正しく機能していることを示しています。テーブルが重複を許可しないように設定されています。あなたのビジネス要件は、他のオプションが正常ON CONFLICT

The optional ON CONFLICT clause specifies an alternative action to raising a unique violation or exclusion constraint violation error. For each individual row proposed for insertion, either the insertion proceeds, or, if an arbiter constraint or index specified by conflict_target is violated, the alternative conflict_action is taken. ON CONFLICT DO NOTHING simply avoids inserting a row as its alternative action. ON CONFLICT DO UPDATE updates the existing row that conflicts with the row proposed for insertion as its alternative action.

+0

私は' ON CONFLICT ON CONSTRAINT fb_post_pkey DO NOTHING'で解決しました –

関連する問題