Psycopg アダプターを使用している Python スクリプトがあります。JSON 配列を解析し、PostgreSQL データベースに挿入しています。
for item in data["SchoolJSONData"]:
mId = item.get("Id")
mNumofRooms = item.get("NumofRooms")
mFloors = item.get("Floors")
con = None
con = psycopg2.connect("dbname='database' user='dbuser'")
cur = con.cursor()
cur.execute('INSERT INTO Schools(Id, NumofRooms, Floors)VALUES(%s, %s, %s)',(mId, mNumofRooms, mFloors))
con.commit()
スクリプトを再度実行するたびに、次の結果が得られます。
psycopg2.IntegrityError: duplicate key value violates unique constraint "schools_pkey"
データベース内の既存のエントリを無視するように挿入スクリプトを実行するにはどうすればよいですか?
編集:すべての返信に感謝します...データを上書きせず、追加のみ(PKがまだテーブルにない場合)を試み、エラーを無視します。私の場合、新しいエントリを追加するだけで、データを更新することはありません。