如何将cursor.callproc函数与postgres过程的kparams一起使用

2024-04-27 00:55:23 发布

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

我有一个将用户添加到用户表的postgres过程:

CREATE OR REPLACE PROCEDURE public.add_user(
p_name character varying,
p_secondname character varying,
p_description character varying,
p_extid integer,
p_carid character varying)

LANGUAGE 'plpgsql'
AS $BODY$
DECLARE var_userid integer;
    BEGIN
    
        INSERT INTO users ("name", "secondname", "description", "extid") 
        VALUES (p_name, p_secondname, p_description, "p_extid" )  RETURNING "id" INTO var_userid;
    
        IF p_carid IS NOT NULL 
        THEN    
        
            INSERT INTO user_to_cam (userid, carid)
            SELECT var_userid,c::INTEGER FROM regexp_split_to_table(p_carid, ';') AS c;     
        END IF; 
    
    END
$BODY$;

是否可以使用cursor.callproc()添加以下用户:

cursor.callproc('add_user', {'name':'Bob','secondname':'Dummy','description':'Some description','extid':'1','carid':'1',})