私は、大量の基本的にハードコードされたデータを含む趣味アプリと、それを配備すると動的ユーザデータを含む趣味アプリを開発中です。ハードコードされたデータをローカルで更新する機能が必要です(よりもINSERT
秒以上)、これらのデータをサーバーにエクスポートします。つまり、データをファイルにダンプし、新しい行(比較的少数)がINSERT
になり、既存の行(PKで識別される)がUPDATE
dになるようにインポートする必要があります。明らかに、新しい行はサーバー上でINSERT
になることはできません(または、PKが潜在的に衝突して、誤ってUPDATE
を発行する可能性があります)。これは許容可能な制限です。しかし、ユーザがアクセス可能なテーブルは "静的な"テーブルにFK制約を持つため、UPDATE
dであるDELETE
の行を同期テーブルを削除することはできません。PostgreSQLの既存の行をインポート/更新する
残念ながら、これは非常に難しいようです。 GoogleとPostgresのメーリングリストでは、「on_duplicate_key_update
」という新しい機能が、「pg_loader can do it
」の表示と一緒に、新しいバージョンになることを伝えています()。 。
最悪の場合のシナリオでは、私は自宅のソリューション(データファイルをダンプし、PKの競合をチェックし、INSERT
またはUPDATE
の文を適切に発行するカスタムインポートスクリプトを作成する)他の人が私の前で必ず遭遇した問題のために、非常に不器用な解決策に思えます。
どのような考えですか?
自分の好奇心のためだけに、サーバー上の更新/挿入を行うのはなぜですか?あなたのすべての問題を解決するようです。 –
できます。主な理由はセキュリティ(自宅のシステムでは、私はむしろ攻撃者にコアデータを公開しないだろう...)と、ネット接続なしで頻繁に働くという事実です。 –
私には分からないことがあるはずです。編集を行った場所に基づいてデータの脆弱性はどのようになりますか? –