在postgres中,你如何从程序中调用准备好的声明

时间:2011-12-28 04:56:36

标签: database postgresql prepared-statement

在postgres中

  • 作为SQL命令execute运行预准备语句
  • 程序execute内的
  • 运行动态命令。

可以在程序中调用预处理语句吗?


以下每个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;

注释:

  • USING子句
  • 之前的INTO子句
  • 围绕使用“args”
  • 没有任何问题

1 个答案:

答案 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;
$$;