动态使用psycopg2在python中更改数据库(postgresql)

2024-06-01 00:51:48 发布

您现在位置:Python中文网/ 问答频道 /正文

有谁能告诉我怎样才能动态地改变我刚才创建的数据库。。使用以下代码。。。 我认为在执行这段代码的过程中,我将处于默认的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()

Tags: 代码fromimport数据库closeconnect动态postgres
1条回答
网友
1楼 · 发布于 2024-06-01 00:51:48

您可以使用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()

相关问题 更多 >