首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在跳过错误时在pgScript 4中执行pgAdmin

在跳过错误时在pgScript 4中执行pgAdmin
EN

Database Administration用户
提问于 2017-07-20 10:46:57
回答 2查看 8.8K关注 0票数 0

在pgAdmin3中,通过SQL,有一个Execute pgScript按钮(与Execute Query不同)将运行整个脚本,跳过错误。pgAdmin4中的SQL编辑器没有这样的特性,是否有我无法找到的替代方法,或者是否有一个参数/命令可以添加到我的脚本中,以便在运行时跳过错误?

在本例中,脚本是自动生成的,只重命名可能不存在的表/列,因此不需要错误输出。

我仍然可以在pgAdmin 3中运行脚本,但是使用pgAdmin3连接到版本9或更高版本的数据库会引发一些警告,这些警告似乎不会导致任何问题,但我宁愿找到解决方案,也不愿找到解决办法

使用: PostGreSQL 9.5,pgAdmin4 1.6

更新:根据

如何在pgScripts中执行pgAdmin4?你不能让我害怕。当Postgres在v9.0中引入用于执行匿名代码块的DO命令时,它们或多或少已经不受支持了,因为它们实际上已经过时了。

...it看起来可能会使用DO来强迫它像pSQL一样运行吗?

EN

回答 2

Database Administration用户

发布于 2017-07-21 07:02:27

在psql上,这是默认的,但是您可以(Un)用\set ON_ERROR_STOP 0|1设置它。

因此,我建议在脚本的开头尝试\set ON_ERROR_STOP 0

来自文档

默认情况下,ON_ERROR_STOP在发生错误后继续执行命令处理。当此变量设置为on时,处理将立即停止。在交互模式下,psql将返回命令提示符;否则,psql将退出,返回错误代码3以区别这种情况和使用错误代码1报告的致命错误情况。在这两种情况下,任何当前运行的脚本(如果有的话)都将立即终止。如果顶层命令字符串包含多个SQL命令,则当前命令将停止处理.

票数 1
EN

Database Administration用户

发布于 2019-12-13 19:05:14

我发现最好在我的桌面上安装psql客户机来运行遗留脚本,而不必登录到db服务器。您可以下载windows的posgresql安装,因为它附带了psql.exe。

安装的较新版本(我认为是10+)在安装中有一个只安装客户端的选项。

否则,您可以下载安装并手动删除下载中的所有内容,但psql.exe所需的内容除外。我只保留了这些文件。

代码语言:javascript
运行
复制
libcrypto-1_1-x64.dll 
libcurl.dll 
libeay32.dll
libecpg.dll
libecpg_compat.dll
libiconv-2.dll
libintl-8.dll
libpgtypes.dll
libpq.dll 
libssl-1_1-x64.dll 
psql.exe
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/180330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档