一、假设有表student,字段分别有id,remark,name等字段。
二、写一个存储函数,根据传过去的变量ID更新remark的内容。
调用该存储函数格式如下:select update_student(1);
三、存储函数示例如下:
CREATE OR REPLACE FUNCTION public.update_student(id integer)
RETURNS text AS
$BODY$
declare sql_str_run text;
BEGIN
/*
--method 1
select 'update student set remark ='''|| now() ||''' where student.id = '|| $1 into sql_str_run ;
execute sql_str_run;
--method 2
execute 'update student set remark =now() where student.id=$1' using $1;
*/
--method 3
update student set remark =now() where student.id=$1;
return 'update is ok' ;
end
$BODY$
LANGUAGE plpgsql VOLATILE
以上三种方法都可以实现同样的效果,实际应用中,可以结合场景来使用。
比较简单的情况下直接用method 3;
如果需要拼的变量可以直接获取的,则用method2即可;
如果变量本身也是需要需要通过函数或语句的计算来获得,一般建议用method 1;