1.概念和优势
2.代码块结构
do end之间俩个$$ declare用来声明定义变量,begin用来运行赋值 notice输出
3.变量使用
-
常量
常量修改会报错
示例
notice注意
4.select 和perform的区别
错误信息ERROR: query has no destination for result data 表示在PL/pgSQL存储过程中,你尝试执行一个SELECT查询,但是没有指定目标来接收这个查询返回的数据。在PL/pgSQL中,当你执行一个SELECT语句时,如果不想获取或处理其返回的数据,应该使用PERFORM而不是SELECT。
如果你的查询是试图从表中获取数据但是不需要使用这些数据,可以直接用PERFORM代替SELECT。如果你确实需要获取数据,那么你需要将结果储存到某个变量中。如果这些数据不需要储存,可以用一种最简单的方式来消耗掉这些数据,例如:
-- 假设你的函数返回某个值并且你不关心这个值,使用 PERFORM
PERFORM some_function_with_return_value();-- 如果需要存储返回值,请使用变量
DECLARE
result_value some_type; -- 这是要存储返回值的变量
BEGIN
SELECT function_that_returns_value()
INTO result_value;
END;下面是更详细的例子:
假设你有一个函数some_function(),且这个函数返回值,但你不需要这个返回值:
-- 使用 PERFORM 来忽略返回值
PERFORM some_function();而如果你需要存储处理结果,则可以使用:
DECLARE
my_variable some_type;
BEGIN
SELECT some_function()
INTO my_variable;
END;确保你在函数的声明部分定义了变量,如果不使用返回值的情况下,把SELECT替换为PERFORM,就不会再有此错误。