我有以下代码:
class DatabaseMainConnection:
def query(self, ids):
connection = connect(self.get_secret())
cursor = connection.cursor(name="Some Title")
logger.info("executing database select query")
cursor.execute(self.build_query(ids))
logger.info("executed database select query")
records = cursor.fetchall()
mappings = []
for r in records:
mappings.append(
{
"id": r[1],
"degree_name": r[0],
"uuid": r[2],
"email": r[3],
"another_id": r[4],
}
)
cursor.close()
connection.commit()
connection.close()
return mappings
def build_query(self, ids):
return f'''select d.name as degree_name,
u.id,
u.value as uuid,
e.value as email,
sf.sf_id as another_id
from form_submissions fs
left join forms fc
on fs.id = fc.forms_id
left join degree_name d
on d.id = fc.degree_name_id
left join emails e
on e.id = fs.email_id
left join uuids u
...
where u.is_primary = 1 and fs.id in {(*ids,)};
'''
def connect(password):
try:
...
connection = psycopg2.connect(
dbname=vault_data['database'],
host=vault_data['instance_name'],
port=vault_data['port'],
user=vault_data['username'],
password=password
)
...
return connection
我得到的反馈是:
1.应使用事先准备好的声明。我不理解反馈。这里可以做什么?
2.我不会提交执行SELECT的事务。我也不需要关闭光标或连接。那怎么办呢
什么是事先准备好的声明?如何将其重构为更好的
目前没有回答
相关问题 更多 >
编程相关推荐