postgresql – 使用“CREATE … IF NOT EXISTS”时抑制“通知:存在关系”

postgresql – 使用“CREATE … IF NOT EXISTS”时抑制“通知:存在关系”,第1张

概述我有一个函数创建一个临时表来存储和处理数据.问题是我想在单个事务中以1M次的顺序运行此函数,而不需要: NOTICE: relation "foo" already exists, skipping 输出~1M次.有没有一种有效的方法呢? 什么是无效的: >改为放弃桌子 DROP TABLE IF EXISTS >导致共享内存耗尽 >捕获duplicate_table异常(效率低于使用IF NO 我有一个函数创建一个临时表来存储和处理数据.问题是我想在单个事务中以1M次的顺序运行此函数,而不需要: @H_502_1@NOTICE: relation "foo" already exists,skipPing

输出~1M次.有没有一种有效的方法呢?

什么是无效的:

>改为放弃桌子

@H_502_1@DROP table IF EXISTS

>导致共享内存耗尽

>捕获duplicate_table异常(效率低于使用IF NOT EXISTS?)

@H_502_1@BEGIN CREATE TEMPORARY table foo () ON COMMIT DROP;EXCEPTION WHEN duplicate_table THEN --do nothingEND; 正如其他人所指出的那样,clIEnt_min_messages设置就是你想要的.有很多方法可以配置它.

SET clIEnt_min_messages = error或SELECT set_config(‘clIEnt_min_messages’,’error’,false)将保留当前会话/连接的其余部分.

SET LOCAL clIEnt_min_messages = error或SELECT set_config(‘clIEnt_min_messages’,true)在当前事务结束时重置.

CREATE FUNCTION语句的SET子句仅将设置范围限定为此函数;这听起来像是你最合适的选择.例如:

@H_502_1@CREATE FUNCTION f() RETURNS voID SET clIEnt_min_messages = error LANGUAGE plpgsql AS ... 总结

以上是内存溢出为你收集整理的postgresql – 使用“CREATE … IF NOT EXISTS”时抑制通知:存在关系”全部内容,希望文章能够帮你解决postgresql – 使用“CREATE … IF NOT EXISTS”时抑制“通知:存在关系”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存