在postgres中
可以在程序中调用预处理语句吗?
以下每个Frank,将用户插入任意模式的部分代码:
execute 'insert into '||v_schema||'.usr( login, email, name, role, pwd )
values( $1, $2, $3, $4, md5($5) )
returning usr_id'
into v_usr_id
using p_login, p_email, p_name, v_role, p_pwd;
注释:
答案 0 :(得分:2)
将EXECUTE与USING结合使用(自8.4版开始提供):
CREATE OR REPLACE FUNCTION foo(int)
RETURNS bool
LANGUAGE plpgsql
AS
$$
BEGIN
EXECUTE 'INSERT INTO tablename(columnname) VALUES($1);' USING($1); -- your input
RETURN true;
END;
$$;