在Supabase中创建数据库函数失败:create附近语法错误
解决Supabase创建PL/pgSQL函数的语法错误问题
你的函数代码存在两个关键问题,导致报错:
PL/pgSQL返回值逻辑错误
原代码里用select 'hello world';无法将结果返回给函数,PL/pgSQL要求必须用return语句明确返回指定类型的值。权限与搜索路径的语法格式问题
SECURITY DEFINER与SET search_path的声明格式需要调整,同时空的search_path可能引发权限异常,推荐设置为public。
修正后的完整代码:
CREATE OR REPLACE FUNCTION hello_world() RETURNS TEXT LANGUAGE plpgsql SECURITY DEFINER SET search_path = public AS $$ BEGIN RETURN 'hello world'; END; $$;
执行注意事项:
- 用
CREATE OR REPLACE可以覆盖已存在的同名函数,避免"函数已存在"的额外报错 - 确保在Supabase SQL编辑器中直接执行代码,不要添加多余的前缀或不可见字符
内容的提问来源于stack exchange,提问作者samplecode3300
相关产品推荐
相关产品推荐

