回答
这不正是你想要的,但如果你有begin transaction;
开始你的脚本,并与end transaction;
结束,它实际上将第一个错误后跳过一切,然后它会回滚它的错误之前所做的一切。
我假设您使用的是psql
,这可能会方便地添加到您的~/.psqlrc
文件中。
\set ON_ERROR_STOP on
这将使其中止第一个错误。如果你没有它,即使有一个事务,它也会继续执行你的脚本,但是一切都会失败,直到脚本结束。
你可能想用保罗说的交易。如果您不想更改脚本,也可以使用psql --single-transaction ...
完成。
所以,一个完整的例子,在你的.psqlrc ON_ERROR_STOP:
psql --single-transaction --file /your/script.sql
即使事务失败,psql命令的退出状态仍为0. – 2011-06-06 05:30:13
事实上,即使使用'--single-transaction',对于非零存在状态,'-v ON_ERROR_STOP = 1'仍然是必需的 – bitek 2015-03-04 09:54:52
我认为解决方案添加以下内容.psqlrc远未完善
\set ON_ERROR_STOP on
存在更简单方便的方法 - 使用psql参数:
psql -v ON_ERROR_STOP=1
最好还用-X
参数关闭.psqlrc文件的使用情况。 完美适合我
p.s.该解决方案从Peter Eisentraut的伟大职位中找到。谢谢,彼得! http://petereisentraut.blogspot.com/2010/03/running-sql-scripts-with-psql.html
- 1. 脚本失败,错误代码为80040E31
- 2. NPPExec脚本的CreateProcess()失败,错误代码2失败:
- 3. SQL:转换失败错误
- 4. SQL转换失败错误
- 5. 从SQL脚本导入始终失败
- 6. 这个SQL脚本为什么失败?
- 7. FTP脚本失败
- 8. Liquibase脚本失败
- 9. PowerShell脚本失败
- 10. 警告:espcomm_sync失败错误:espcomm_open失败错误:espcomm_upload_mem失败
- 11. postgres on heroku sql语句失败
- 12. SQL教程脚本错误
- 13. SQL脚本外键错误
- 14. Sql脚本 - 错误的语法错误
- 15. SQL Server 2008-使用Scripter.EnumScript的脚本数据失败,出现“用户登录失败”错误
- 16. SQL Server备份失败,错误64
- 17. SQL Server恢复错误 - 写在?失败
- 18. sql错误:转换nvarchar转换失败
- 19. Python - 脚本失败时撤消脚本
- 20. shell脚本调用错误命令/ bin/sh失败,退出
- 21. MSBuild脚本失败,但不会产生错误
- 22. Selenium RC和IE脚本错误 - 远程过程调用失败
- 23. npm安装错误在[email protected]安装脚本失败
- 24. 栅格到多边形脚本循环失败!错误99999!
- 25. 脚本运行错误'失败类型检查'
- 26. 错误:packageDebug失败
- 27. RestKit:serializedObjectForMIMEType失败,错误
- 28. sessionAsSignerWithFullAccess错误失败
- 29. Echo失败错误
- 30. 错误 - Firebase.push失败:
是的,但它仍然解析了一切。如果您只想在第一次成功时执行第二次*事务,则这不起作用。 – Wildcard 2017-05-06 04:22:28