在PostgreSQL中创建函数时输入结尾出现语法错误

问题描述

create type role as enum ('Tutor','Student','Parent','Admin'); 

CREATE OR REPLACE FUNCTION public.func_users_manage
(p_flag character varying,p_email character varying,p_phone_no character varying,p_password character varying,p_role role,p_is_email_verified boolean)
 RETURNS TABLE(_result_code integer,_result_message character varying)
 LANGUAGE plpgsql
AS $function$
begin

    if flag == 'I' then
        insert into users 
        (
            email,phone_no,password,role,is_email_verified,record_status,created_on,created_by
        )
        values 
        (
            email,true,CURRENT_TIMESTAMP,email
        );
        RETURN QUERY
    select  1 as RESULT_CODE,cast('Successfully Inserted.' as varchar)   as RESULT_MESSAGE;
    else if flag == 'U' then
        update 
            users 
        set 
            is_email_verified = is_email_verified,email_verified_on = CURRENT_TIMESTAMP,last_modified_on = CURRENT_TIMESTAMP,last_modified_by = email
        where 
            email = email;
            RETURN QUERY
    select  1 as RESULT_CODE,cast('Successfully Updated.' as varchar)   as RESULT_MESSAGE;
    else if flag == 'D' then
        update 
            users 
        set 
            record_status = false,cast('Successfully Deleted.' as varchar)   as RESULT_MESSAGE;
    end if;

--  RETURN QUERY
--  select  1 as RESULT_CODE,cast('Successfully Executed.' as varchar)   as RESULT_MESSAGE;
end
$function$
;

我想返回result_code,消息取决于条件。怎么做?除了返回表还有其他方法吗? 如何在Postgresql中的if条件中使用多行?需要开始结束? 为什么在创建函数时出现此“ 输入末尾语法错误错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)