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条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
PCP和PGCE这两个证哪个含金量更高一些更值得考?
回答 2
这是两个认证体系,还是建议自行考虑
pg如何查看wal文件的物理路径?
回答 2
参数logdirectory决定了pgwal日志存放的目录名字,默认为log;不过这个是相对目录,相对于$PGDATA,$PGDATA目录可以查看参数datadirectory
openGauss 与 postgresql在关键技术有什么区别?
回答 1
可参考,欢迎补充:
询问权限
回答 1
在PostgreSQL中,要授予用户对特定表的查询权限,语法如下:GRANTSELECT(columnname)ONtablenameTOusername;因此,正确的语句是:B.grantselec
有使用 postgres_fdw 插件吗? 不知道效率怎么样。
回答 1
postgresfdw为访问远程表提供了更透明和符合标准的语法,并且在许多情况下可以提供更好的性能。postgresfdw是PG源码包自带的插件,所以直接去源码包进行编译安装即可,这里需要注意的是,在
请问各位老大postgresql如何给用户授予创建schema的权限?
回答 2
已采纳
postgres>createschemaecuac;ERROR:permissiondeniedfordatabasepostgres这个错误表明你正在尝试在postgres数据库上创建sch
postgreSQL 的两地三中心,采用什么架构及部署方式?
回答 1
repmgr
物理复制的启动和停止顺序?
回答 1
在PostgreSQL物理流复制架构中(例如一主一从),进行系统级维护时,通常推荐的停启顺序如下:停止(关库)顺序:先停止从库(Standby):先关闭从库可确保从库不会在主库关闭后反复尝试连接,从而
pg_basebackup搭建从库报错
回答 3
最后在data/global目录下删除了pginternalbak.init文件,pgbasebackup命令执行成功
在postgresql 表中建了一个check约束使用了like判断: check (name like '[0-9]'); 结果insert into 表名 values('0'); 执行报错:违反了检醒约束
回答 1
已采纳
可以使用similarto方法替换like(postgres@[local])[sbtest]14:01:15createtabletlike(idint,namevarchar(20)check(n
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~