私はpythonの初心者です。このコードを使用して SQL コマンドを実行します。
cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef"))
これは準備されたステートメントですか、それともクライアント側の引用ですか?
私はpythonの初心者です。このコードを使用して SQL コマンドを実行します。
cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abcdef"))
これは準備されたステートメントですか、それともクライアント側の引用ですか?
いいえ、少なくともpsycopg2ではそうではありません。ドキュメントの「準備」は、準備済みステートメントとはまったく異なる「PREPARE TRANSACTION」を指します。
ただし、メソッドをオーバーライドするか、追加のステートメントを実行することで、準備済みステートメントをエミュレートできます。参照:準備済みステートメントをサポートする psycopg2 カーソルの例
参照してください: psycopg の関連ブログ エントリ。
詳しくは:
http://www.postgresql.org/docs/9.2/static/sql-prepare.html
http://www.postgresql.org/docs/current/static/sql-prepare-transaction.html
ドキュメントによると、execute メソッドは「データベース操作 (クエリまたはコマンド) の準備と実行」を行います。はい、それは準備されたステートメントです。