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

psycopg2での接続のすべてのクエリのスキーマの設定:search_pathを設定するときに競合状態を取得する

    より洗練された解決策は、search_pathを設定することだと思います options connect()のパラメータ 、そのように:

    def connect(conn_config_file = 'Commons/config/conn_commons.json'):
        with open(conn_config_file) as config_file:    
            conn_config = json.load(config_file)
    
        schema = conn_config['schema']
        conn = psycopg2.connect(
            dbname=conn_config['dbname'],
            user=conn_config['user'],
            host=conn_config['host'],
            password=conn_config['password'],
            port=conn_config['port'],
            options=f'-c search_path={schema}',
        )
        return conn
    

    もちろん、接続文字列の一部として「オプション」を使用することもできます。ただし、キーワード引数を使用すると、文字列の連結による煩わしさをすべて防ぐことができます。

    この解決策は、このpsycopg2機能リクエスト で見つかりました。 。 「options」パラメータ自体については、ここ



    1. 主キー列の番号または文字

    2. 主キーでAUTO_INCREMENTを使用したMySQLのパフォーマンス

    3. INSERTステートメント内でサブクエリを使用できますか?

    4. bashからMySQLクエリを実行しているときに、影響を受ける行数を取得するにはどうすればよいですか?