問題タブ [psycopg2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonを使用してPostgreSQLデータベースに「NULL」値を挿入する方法は?
NULL
変数がNone
Pythonにある場合、PostgreSQL データベースにキー値を入力するための良い方法はありますか?
このクエリの実行:
の場合、TypeError
例外user_id
が発生しますNone
。
ドライバを使用してNULL
、値が の場合、データベースに を挿入するにはどうすればよいですか?None
psycopg2
python - postgresql バインド変数に関する質問
私は質問を見ていて、バインド変数を使用してみることにしました。私が使う
と
上記の2セットの所要時間を見ると、あまり時間差がないように見えます。実際、2 番目の方が時間がかかります。どこかで間違いを犯した場合、誰かが私を修正できますか? ここでpsycopg2を使用しています。
django - これらの文字列がクエリの psycopg2 によって引用されないのはなぜですか?
psycopg2 エンジンを使用して、django でアプリを作成します。私の文字列を常に引用したいわけではないようです。テストケースは次のとおりです。
これらの文字列が引用符で囲まれていない理由は何ですか? たとえば、「共通点」:
問題が私の実装、psycopg2、または django ORM にあるのかどうかはわかりません。アイデアをいただければ幸いです。
python - psycoyg2 pythonを使用してリストを使用してデータを入力する(データが欠落している)
cvs から postgresql に値が欠落しているデータを取得したい。文字列を使用して挿入できてうれしいです。リストまたは類似のものを使用してこれを行うことをお勧めします。また、欠落している値をチェックし、それ以外の場合はエラーが発生した場合に置き換える必要があります。
エラー トレースバック (最新の呼び出しが最後): ファイル "/home/matthew/workspace/dfdsggd/try_db_thing.py"、41 行目、cursor.execute(sql_insert) psycopg2.ProgrammingError: "." またはその近くで構文エラーが発生しました 行 1: ...ORDER_ADM,MONTH_ADM,DAY_ADM,YEAR_ADM) 値 (2,6,7,.,3,5,7) ^
python - Python、SQL: パラメータとして読み取られる列を設定します
Psycopg2を使用して Python で狂った SQL クエリがあります。arches
クエリは、テーブルからいくつかの列を読み取ります。
このクエリをパラメーター化して、必要な列を文字列連結を使用して指定するのではなく、パラメーターとして指定するようにします。これははるかに洗練された方法です。
単純な方法はSELECT *
、必要な列を除外することです。しかし、これは不要なデータで DB とネットワークに負担をかけるので、むしろ避けています。
何か案は?
アダム
python - テーブルからデータを選択し、別の DB に挿入する
私はpythonとpsycopg2を使用していくつかのpsqlデータベースをリモートでクエリしています.リモートテーブルから必要なデータを選択し、別のDB(ローカルアプリケーションサーバー)のテーブルに挿入する最良の方法を見つけようとしています. )。
私が読んだもののほとんどは、executemany を避けて COPY 操作に目を向けるように指示しましたが、テーブル全体ではなく、特定の select ステートメントでこれを実装する方法がわかりません。私はこの方向に向かうべきですか、それとも完全にオフですか?
python - Python/postgres: mxDateTime を組み込みの datetime オブジェクトに変換する利点はありますか?
私が継承している一部のコードは、Python の psycopg2 モジュールを使用して、Postgres データベース クエリから mxDateTime オブジェクトを返します。この動作は歴史的な理由によるものだと推測していますが、別の説明があるのではないかと考えています。継承した大規模なライブラリを介して mxDateTime 依存関係が既にある場合、これらの日付を操作する前に組み込みの datetime データ型に変換する利点はありますか?
python - Postgres 8.4.4 + psycopg2 + python 2.6.5 + Win7 の不安定性
質問のタイトルで、私が使用しているソフトウェア コンポーネントの組み合わせを確認できます。
Postgresサーバー(Win 7 Pro)で実行されている単純な10テーブルのデータベースがあります。比較的軽いトランザクションを実行するためにランダムな間隔でデータベースに接続するクライアントアプリ (psycopg を使用して Postgres に接続する Python) があります。あらゆる種類の大量のトランザクションを実行するクライアント アプリは一度に 1 つだけであり、それらは通常 500 ミリ秒未満です。それらの残りの部分は、データベースがトランザクションを実行するのを実際に待つよりも、接続に多くの時間を費やします。ポイントは、データベースの負荷が軽いということですが、負荷は読み取りと書き込みの間で均等に分割されます。
私のクライアント アプリは、サーバー/サービス自体として実行されます。(1) Postgres サーバーを完全にダウンさせ、(2) キーボード割り込みでクライアント アプリを強制終了してデータベースを破壊することはよくあることです。
(1) とは、サーバー上の Postgres プロセスが中止され、サービスを再起動する必要があることを意味します。
(2) とは、クライアントがデータベースを再起動し、(おそらく) 「回復モード」操作を完了した後にデータベースにアクセスしようとすると、データベースが再びクラッシュすることを意味します。古いデータベース/スキーマをデータベース サーバーから削除し、毎回再構築して安定した状態に戻す必要があります。(回復モードの後、バキュームのさまざまな組み合わせを試して、安定性が向上するかどうかを確認しました。バキュームは実行されますが、クライアントがデータベースに再度アクセスしようとすると、サーバーはまだすぐにダウンします。)
「タスクキル」を使用してクライアントアプリを強制終了したときに同じ効果が見られたのを思い出しません-キーボード割り込みを使用してpythonプロセスを停止した場合のみ。常に発生するわけではありませんが、頻繁に発生するため、大きな懸念事項になります (25%?)。
クライアント上の何かが実際に「エンタープライズ クラス」のデータベースを停止できることに本当に驚きました。堅牢性を向上させる方法に関するヒントを誰かが共有できますか? ありがとう、M
python - djangoはカスタムフィールドを書くのに助けが必要です
Djangoにはpostgresqlのカスタムタイプ「text[]」の組み込みモデルフィールドがないことを知っています。ドキュメントを見た後、質問があります。
'text []'データ型を反映するためにdb_typeメソッドをオーバーライドする必要があることに気づきましたが、それだけですか?to_pythonメソッドには何を書く必要がありますか?つまり、返されるデフォルト値はすでに私が使用できるリストですよね?
psycopg2を使用します。
更新:上記のフィールドでテーブルを作成しようとしました...しかし、djangoの進化はエラーをスローしています:
誰でも啓発できますか?
django - Psycopg2 を使用して他のトランザクションを実行しているときに CLUSTER がテーブル サイズを縮小しない
このストアド プロシージャを実行する Python プロセスを実行しています。このストアド プロシージャは、特定のディレクトリから postgres データベースにファイルをインポートします。これらのファイルは、まずインメモリ テーブルにインポートされ、次にディスク テーブルにインポートされます。インメモリ テーブルの実際のサイズは、実際には 30 MB を超えることはありません。このテーブルは常に更新されるため、テーブルのサイズが大きくなります (デッドタプルのため)。物事を抑えるために、テーブルで CLUSTER 操作を実行する必要があります。psycopg2 モジュールを使用してストアド プロシージャとテーブルの CLUSTER を実行していますが、インポート プロセスが実行されている場合、テーブルのサイズは決して小さくなりません。しかし、インポート プロセスを停止して CLUSTER を実行すると、テーブルのサイズが小さくなります。パフォーマンス上の理由から、インポート手順を停止せずに CLUSTER コマンドを実行できるはずです。
手動コミット ISOLATION_LEVEL_AUTOCOMMIT を試しましたが、どれもうまくいきませんでした。以下はプロセスのサンプルコードです -
同様の conn オブジェクトを使用して、1 時間に 1 回 CLUSTER コマンドを実行したい -
また、設定してみました -
もう1つの情報-私はこれらすべてをdjango環境内で実行しています。django接続オブジェクトを使用してタスクを実行できませんでした.djangoは私のスレッドコードとの接続を解放できず、すぐにデータベースは接続の受け入れを停止しました.この混合環境はpsycopgに影響を与える可能性がありますか?
いくつかの観察 -
- インポート プロセスの実行中に CLUSTER コマンドを実行 - サイズが下がらない
- インポート プロセスを停止してから CLUSTER を実行すると、サイズが小さくなります
- インポート プロセスを停止してインポート プロセスを開始し、その後 CLUSTER コマンドを実行すると、サイズが減少します
問題について何か考えはありますか?