压制;当前事务被中止…&引用;PostgreSQL中的消息

压制;当前事务被中止…&引用;PostgreSQL中的消息,postgresql,transactions,Postgresql,Transactions,我正在处理一个非常大的SQL转储。整体结构如下所示: 开始; 设置所有延迟的约束条件; 插入…; --…~300K插入操作 插入…; 犯罪 问题是,如果任何一条语句中存在错误,则会显示错误,并中止消息当前事务,忽略命令,直到为其后的每条语句生成事务结束块 为什么它的行为如此怪异?有没有办法抑制以下消息?只要显示真正的错误消息并跳过事务执行就足够了。我不想看到~300K条有意义的错误消息 我是否需要以不同的方式构建转储?或者是否有我可以使用的标志/选项?您可能正在使用psql将查询发送到服务器。

我正在处理一个非常大的SQL转储。整体结构如下所示:

开始;
设置所有延迟的约束条件;
插入…;
--…~300K插入操作
插入…;
犯罪
问题是,如果任何一条语句中存在错误,则会显示错误,并中止消息
当前事务,忽略命令,直到为其后的每条语句生成事务结束块

为什么它的行为如此怪异?有没有办法抑制以下消息?只要显示真正的错误消息并跳过事务执行就足够了。我不想看到~300K条有意义的错误消息


我是否需要以不同的方式构建转储?或者是否有我可以使用的标志/选项?

您可能正在使用
psql
将查询发送到服务器。
您可以将
ON\u ERROR\u STOP
内置变量设置为
ON

发件人:

它可以从psql外部通过脚本.sql
psql-v ON\u ERROR\u STOP=ON-f进行设置,也可以从脚本内部或与meta命令
\set ON\u ERROR\u STOP ON
交互进行设置


pg_dump
没有自动将其添加到转储的选项(据我所知,它不会发出任何
psql
meta命令,只发出纯SQL命令)。

哦,谢谢!这很有效。每天都有很多东西要学。但是,有没有办法将其直接添加到转储文件中?或者它仅作为CLI参数工作?
  ON_ERROR_STOP

  By default, command processing continues after an error. When this
  variable is set to on, processing will instead stop
  immediately. In interactive mode, psql will return to the command
  prompt; otherwise, psql will exit, returning error code 3 to
  distinguish this case from fatal error conditions, which are
  reported using error code 1.