我有以下函数用于创建 PostgreSQL 数据库psycopg
:
def create_database() -> None:
"""A function for creating a PostgreSQL database."""
db_name = ('test_db',)
sql_1 = """SELECT datname FROM pg_database"""
sql_2 = """CREATE DATABASE %s"""
with connect('create') as conn:
try:
cur = conn.cursor()
cur.execute(sql_1)
databases = cur.fetchall()
if db_name in databases:
print(f'Database named {db_name[0]} already exists.')
else:
cur.execute(sql_2, db_name)
cur.close()
print('Creating database...')
conn.commit()
print('Database created.')
except (Exception, DatabaseError) as error:
print(error, '\n-> Could not create database.')
它给出以下错误:
syntax error at or near "$1"
LINE 1: CREATE DATABASE $1
^
-> Could not create database.
问题是什么?
修改相关行为
解决了问题。