2022-06-10
postgressql begin end 区块检查
postgreSQL 13
发现procedure/function 有使用 begin end 的形式包起来的话,里面的table 就不会检查是否真的有此table
--NG ERROR: relation "tbl" does not exist
CREATE or replace PROCEDURE insert_data(a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO tbl VALUES (a);
INSERT INTO tbl VALUES (b);
$$;
--OK
CREATE or replace PROCEDURE insert_data(a integer, b integer)
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO tbl VALUES (a);
INSERT INTO tbl VALUES (b);
END;$$
check_function_bodies 预设为on,但是碰到 begin end 就不会检查
这是为什么呢?
begin end 的区块也能从DB参数上设定为检查物件是否存在,如果物件都有存在,再建立function/procedure吗?
谢谢 我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

评论


