sql >> データベース >  >> RDS >> PostgreSQL

psycopg2のパラメーターとしてテーブル名を渡す

    公式ドキュメントによると:

    SQLクエリを動的に生成する必要がある場合(たとえば、テーブル名を動的に選択する場合 )psycopg2.sqlモジュールが提供する機能を使用できます。

    sql モジュールはpsycopg2バージョン2.7の新機能です。構文は次のとおりです。

    from psycopg2 import sql
    
    cur.execute(
        sql.SQL("insert into {} values (%s, %s)")
            .format(sql.Identifier('my_table')),
        [10, 20])
    

    詳細:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

    [更新2017-03-24:AsIs テーブルまたはフィールドの名前、新しいsqlを表すために使用しないでください 代わりにモジュールを使用する必要があります:https://stackoverflow.com/a/42980069/5285608]

    また、psycopg2のドキュメントによると:

    警告 :決して、決して決して Python文字列連結を使用する(+ )または文字列パラメータの補間(% )変数をSQLクエリ文字列に渡します。銃を突きつけても。



    1. SQLServerレプリケーションのセットアップと構成

    2. データベースの監視-SCUMMダッシュボードを使用したPrometheusのトラブルシューティング

    3. SQLで同時イベントの数を計算する

    4. Receive-Jobによって返される予期しない変数タイプ