使用psycopg2动态改变python中的数据库(postgresql)。[英] change database (postgresql) in python using psycopg2 dynamically

本文是小编为大家收集整理的关于使用psycopg2动态改变python中的数据库(postgresql)。的处理方法,想解了使用psycopg2动态改变python中的数据库(postgresql)。的问题怎么解决?使用psycopg2动态改变python中的数据库(postgresql)。问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

谁能告诉我如何动态更改我刚刚创建的数据库...使用以下代码...我认为在执行此代码期间,我将使用默认的 postgres 数据库(即模板数据库),并且在创建新数据库后,我想在运行时更改我的数据库以进行进一步处理...

    from psycopg2 import connect
    from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

    dbname = 'db_name'
    con = connect(user ='postgres', host = 'localhost', password = '*****')
    con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
    cur = con.cursor()
    cur.execute('CREATE DATABASE ' + dbname)
    cur.close()
    con.close()

推荐答案

您可以简单地使用 database=dbname 参数再次连接.注意使用 SELECT current_database() 来显示我们在哪个数据库上工作,使用 SELECT * FROM pg_database 来显示可用的数据库:

from psycopg2 import connect
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

def show_query(title, qry):
    print('%s' % (title))
    cur.execute(qry)
    for row in cur.fetchall():
        print(row)
    print('')

dbname = 'db_name'
print('connecting to default database ...')
con = connect(user ='postgres', host = 'localhost', password = '*****', port=5492)
con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor()
show_query('current database', 'SELECT current_database()')
cur.execute('CREATE DATABASE ' + dbname)
show_query('available databases', 'SELECT * FROM pg_database')
cur.close()
con.close()

print('connecting to %s ...' % (dbname))
con = connect(user ='postgres', database=dbname, host = 'localhost', password = '*****', port=5492)
cur = con.cursor()
show_query('current database', 'SELECT current_database()')
cur.close()
con.close()

本文地址:https://www.itbaoku.cn/post/1763891.html