2012-03-26 12 views
1

私は初心者です。このコードを使用してSQLコマンドを実行します。psycopgを使用したprepared statements

cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef")) 

私はこの準備されたステートメントかクライエント側が引用しているのだろうか?

+0

こちらをご覧ください: http://stackoverflow.com/questions/6775497/psycopg-get-書式設定されたSQLの代わりに – socketpair

答えて

10

いいえ、少なくともpsycopg2ではありません。ドキュメント内の「準備」とは、準備済みの文とはまったく異なる「準備中のトランザクション」を指します。

ただし、プリペアドステートメントをエミュレートするには、メソッドをオーバーライドするか、余分なステートメントを実行します。参照:An example of psycopg2 cursor supporting prepared statements

をご覧ください。relevant blog entry for psycopg.

詳細情報:

http://www.postgresql.org/docs/9.2/static/sql-prepare.html
http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html

-2

the docsによると、実行方法は「データベース操作(クエリまたはコマンド)を準備して実行する」となります。だから、それは準備された声明です。

+8

実際には現在実行されていません。このドキュメントの「準備」は、プリコンパイルされたSQL文ではなく、2フェーズ・コミットに必要な「PREPARE TRANSACTION」コールを指します。 – Brian

関連する問題