我正在尝试创建一个更新用户密码的函数。这是我的功能。
CREATE OR REPLACE FUNCTION update_user(userid int, upassword text) RETURNS integer AS $$
BEGIN
UPDATE tbl_user
SET password= upassword
WHERE user_id = userid;
SELECT 1;
END;
$$
LANGUAGE plpgsql;
我尝试使用。
执行此功能SELECT update_user(1, 'test');
我收到错误
ERROR: control reached end of function without RETURN CONTEXT: PL/pgSQL function
我不知道哪里出错了。请帮帮我。我是创建功能的新手。提前谢谢。
答案 0 :(得分:2)
每个PL / pgSQL函数都需要RETURN
语句。但在您的情况下,您可以使用SQL语言函数:
CREATE OR REPLACE FUNCTION update_user(userid int, upassword text) RETURNS void AS $$
UPDATE tbl_user
SET password = upassword
WHERE user_id = userid;
$$ LANGUAGE sql;
只有当您需要进行更精细的处理(例如,使用局部变量,处理逻辑或触发器)时,您才需要PL / pgSQL函数。