問題タブ [python-db-api]

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.

0 投票する
1 に答える
870 参照

python - デフォルトでDB API 2.0の自動コミットがオフになっている理由は?

PEP 249 -- Python データベース API 仕様 v2.0の説明の.commit()には次のように記載されています。

データベースが自動コミット機能をサポートしている場合、これは最初はオフにする必要があることに注意してください。再びオンにするためのインターフェースメソッドが提供される場合があります。

ほとんどのデータベースがデフォルトで自動コミットすることを考えると、その背後にある理論的根拠は何ですか?

0 投票する
1 に答える
11565 参照

python - psycopg2 を使用して複数の行を挿入する

psycopg2: insert multiple rows with one queryによると、 executemany の代わりにpsycopg2のexecuteを使用する方がはるかに効率的です。他の人は確認できますか?

上記の StackOverflow の質問は、次のようなステートメントを作成するためにmogrifyを使用することを提案しています。

通常の実行機能を使用してそのようなステートメントを生成することは可能ですか? 私はその形の何かを考えました

動作します。

アップデート:

たとえば、SQL ステートメントを実行に渡してみました。

次のタプルで:

しかし、私が戻ってきたのはエラーだけでした:

取得する結果がありません

0 投票する
1 に答える
7173 参照

python - %s を使用した Python MySQL コネクタ データベース クエリが失敗する

ユーザー情報を含むデータベースを照会することになっている基本的なプログラムがあります。特定のユーザーの情報を選択してコンソールに出力しようとしています。

これが私のコードです:

後で tkinter エントリ ボックスからユーザー名を取得する予定があるため、ユーザー名を変数に格納しています。このコードを実行すると、次のエラーが発生します。

クエリで %s を引用符で囲んでみましたが、文字どおりユーザー名 '%s' が検索され、何も返されません。このユーザーのみに対してデータベースを照会できるようにコードを変更するにはどうすればよいですか?

ありがとうございました。

参考までに、私は python 3.3 を使用しています。

0 投票する
1 に答える
154 参照

python - Python の DBAPI を使用して、移植可能なデータベース スキーマを検証するにはどうすればよいでしょうか?

私は、少なくとも 3 つの異なるデータベース サーバー バックエンド (SQLite3、PostgreSQL、および MySQL) で使用できるユーティリティを作成しています。私は ORM を使用していません (ただし、プロトタイプを完成させた後、SQLAlchemy を使用してフォークを試し、他のツール (将来的には他の言語から) からアクセスできるようにスキーマを維持する方法に十分慣れました)。

私は、自分自身の質問に答え、質問を開いて議論のために回答することに関する StackOverflow のポリシーの精神でこれを投稿しています。

以下の回答に投稿されたコードは、意図したスキーマの非常に単純なサブセット (スクリプトの上部近くのハードコード) で事前構成された、サポートされている 3 つのターゲットすべてに対してテストされています。現在、各テーブルに必要な列がすべて含まれていることを確認し、余分な列が存在する場合にのみ警告します。列の内容に関する型やその他の制約をチェックしていません。

(私のユーティリティでは、NULL 値またはコードが適切なデフォルト値を提供できる限り、エンドユーザーが追加の列を追加できるようにする必要があります --- 私のコードは、指定した列のサブセットのみを挿入または更新するためです。 )。

これを達成するためのより良い方法があるか、またはテストで明らかにされていない重大なエラーを犯した場合はお知らせください。

(この質問を扱いやすくするために共有できるSQLFiddleエントリ/リンク適切に作成する方法を知りたい. . それが機能するかどうか見てみましょう)。

0 投票する
0 に答える
117 参照

python - エラー: リスト インデックスが範囲外です。SQL クエリから cur.fetchall() を使用して取得した Python 変数が別の SQL クエリに読み込まれない

max_dateCS という名前で保存されている SQL クエリから取得した値があります。この変数は、別の SQL クエリに入力する必要があります。「リストインデックスが範囲外です」というエラーが発生するため、問題に直面しています。

0 投票する
1 に答える
1319 参照

python - PyMySQL が識別子名をエスケープしないようにするにはどうすればよいですか?

私は Python 2.7で PyMySQL を利用しており、次のステートメントを実行しようとしています。

次のパラメータを使用します。

常に次のようになります。

{ProgrammingError}(1064, u"SQL 構文にエラーがあります。''artikel' ('REC_ID', 'odoo_created') の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください\n
VALUES ('48094', '2014-12-' at line 1")

PyMySQL がフォーマット中にすべての文字列をエスケープしているように思えます。テーブル名や列名などのデータベース識別子でそれを防ぐにはどうすればよいですか? SELECT文字列リテラル ( SELECT * FROM "table") からの s は、テーブル ( ) と比較して不可能であるため、ステートメントが破損しSELECT * FROM tableます。

0 投票する
1 に答える
161 参照

python - Python PYDBLITE - pydblite にレコードを追加する際のエラー

pydbliteデータベース ライブラリを使用する Python スクリプトがあります。データベースが作成され、レコードが追加されたら、コードを実行すると。コードを再度実行すると、エラーが生成されます..ヘルプ

コード

2回目の実行でエラー。