0
我正在嘗試創建一個函數來更新用戶的密碼。這是我的功能。在postgresql中調用更新函數
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
我不知道我走到哪裏錯了。請幫助我。我是創建函數的新手。提前致謝。
你說的是函數'RETURNS integer',但是你不會告訴它返回什麼。你期望它做什麼? –
謝謝,我添加了「SELECT 1;」在「END」之前,函數執行並且密碼已經更新。你能幫我捕獲受影響的行,以便我將它傳遞給驗證的返回值。 – saran
它在手冊中 - 請參閱'GET DIAGNOSTICS'。但是我真的不明白你爲什麼要把這個語句包裝在這樣的函數中,而不是直接在調用站點上做這件事。 –