Psycopg2 在函数中使用 Table 和列名作为参数

Psycopg2 Use Table and Column Name as Parameters in a Function

我正在开发一个使用 Postgresql 数据库的程序,并试图创建一个函数,让我传递两个参数,table 和我想要的列。然后该函数将从给定的 table 中检索该列并显示为数据框。当我 运行 我的代码时,我收到以下错误消息:

关系“RAW_MTL”不存在 第 1 行:select“Ball_LT_NUM”来自“RAW_MTL”

我的代码如下: '''

def get_lot_numbers(table, table_lot):

     con = db_connect()

     try:
         with con:
             with con.cursor() as cur:

                 db_query = sql.SQL("select {field} from {table}").format(
                     field=sql.Identifier(table_lot),
                     table=sql.Identifier(table))

                 cur.execute(db_query)

                 results = cur.fetchall()

                 df = pd.DataFrame(results, columns=['Lot Number'])

         return df

     except (Exception, psycopg2.DatabaseError) as error:
         print(error, datetime.now())
     finally:
         if con is not None:
             con.close()


df_lot_numbers = get_lot_numbers(table_lot='Ball_LT_NUM', table='RAW_MTL')
print(df_lot_numbers)

'''

如有任何帮助或指导,我们将不胜感激。

感谢 Adrian,他对我的问题发表了评论。由于数据库中存在多个模式,问题与搜索路径有关。 Link 下面。

https://www.postgresql.org/docs/14/ddl-schemas.html#DDL-SCHEMAS-PATH