将PLPGSQL函数转换为Python类方法
假设我已经用PLPGSQL编写了很多函数。如何使用Python代码和psycopg2库获取所有这些函数 请参见下面的示例函数:将PLPGSQL函数转换为Python类方法,python,postgresql,plpgsql,psycopg2,Python,Postgresql,Plpgsql,Psycopg2,假设我已经用PLPGSQL编写了很多函数。如何使用Python代码和psycopg2库获取所有这些函数 请参见下面的示例函数: CREATE OR REPLACE FUNCTION get_player_by_email(email_adress varchar) RETURNS TABLE(id bigint, email varchar, nick varchar) AS $$ BEGIN RETURN QUERY EXECUTE 'SELECT players.i
CREATE OR REPLACE FUNCTION get_player_by_email(email_adress varchar)
RETURNS TABLE(id bigint, email varchar, nick varchar)
AS $$
BEGIN
RETURN QUERY EXECUTE
'SELECT players.id, players.email, nick
FROM players
WHERE players.email = $1'
USING email_adress;
RETURN;
END
$$ LANGUAGE plpgsql stable;
为什么我需要这个?我有一个带有init的Python类,它连接到我的数据库。我想在init中添加以下功能:浏览所有函数,并使用这些函数名动态创建新方法,这些函数名返回plpgsql函数的确切功能。例如,我希望自动生成通过电子邮件获取玩家的方法:
Class MyDatabase(object):
def get_player_by_email(self, email):
pass
答案太大了。您需要将问题分解为更小的部分。因此,假设我想使用psycopg2库从python代码浏览数据库中的所有函数,我认为这是一个很好的开始。是的,这是一个很好的开始。重写它,并在结尾的一小段中像脚注一样提示最终目标。完成后,我的脚注很大,但我认为我的问题现在符合SO标准,如果不符合,请不要犹豫提及,我将再次调整。