是否有一个命令来设置一个选项,即使有错误也会导致 PostgreSQL 脚本继续?
例如,有时当我将电子表格中的大量数据插入到表中时,我使用公式创建 INSERT 语句,然后将语句复制到文件中并执行它们,或者将它们复制到 PgAdmin 中以运行它们。准确性并不总是很重要,我不希望整个过程因为几条记录而失败。
语法错误不是这里的问题,只是由于某些错误而失败的命令,例如尝试创建已经存在的索引或插入重复记录。
是否有一个命令来设置一个选项,即使有错误也会导致 PostgreSQL 脚本继续?
例如,有时当我将电子表格中的大量数据插入到表中时,我使用公式创建 INSERT 语句,然后将语句复制到文件中并执行它们,或者将它们复制到 PgAdmin 中以运行它们。准确性并不总是很重要,我不希望整个过程因为几条记录而失败。
语法错误不是这里的问题,只是由于某些错误而失败的命令,例如尝试创建已经存在的索引或插入重复记录。
如果使用psql
,你想要:
\set ON_ERROR_ROLLBACK on
从手册:
ON_ERROR_ROLLBACK
打开时,如果事务块中的语句产生错误,则忽略该错误并继续事务。在交互时,此类错误仅在交互会话中被忽略,而不是在读取脚本文件时。关闭时(默认值),事务块中生成错误的语句会中止整个事务
聚会有点晚了,但我正在对该主题进行一些研究,并在这里找到了一篇出色的文章: Postgres ON_ERROR_ROLLBACK 解释