私は sqlalchemy の使い方を学んでいます (私はまだ初心者です)。私は ORM (SQLAlchemy Expression Language とは対照的に) を使用しており、単純なメソッドを使用してデータベースで利用可能になったときに、タイムスタンプ付きのセンサー データを配置するスクリプトをいくつか設定しました。
>>> session.add(query)
>>> session.commit()
アプローチ。
場合によっては、スクリプトの 1 つが、実際にはまったく新しいものではない「新しい」データを取得することがあります。まったく同じデータがすでに処理され、データベースに追加されています。
これを無視して、取得したデータを単純に追加すると、
(IntegrityError) duplicate key value violates unique constraint
最初は、例外をキャッチしてトランザクションをロールバックするだけで、これを回避しました。ただし、これにより多くの IntegrityErrors が発生し、DB エラー ログが詰まる可能性があります。明らかにこれは不十分な解決策です。代わりに、重複データを更新するか、最初に既存のデータを確認して新しいものだけを追加する必要があります。これを行う方法は無数にありますが、組み込みのシンプルで効率的なアプローチがあると確信しています (これは固有の問題からかけ離れている必要があるため)。
この問題を解決する最善の方法は何ですか?