回答
這不正是你想要的,但如果你有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. WMI腳本失敗,出現錯誤0x80041017
- 3. NPPExec腳本的CreateProcess()失敗,錯誤代碼2失敗:
- 4. 停止Powershell腳本在腳本內部的SQL錯誤失敗後繼續嗎?
- 5. 記錄SQL腳本錯誤
- 6. SQL轉換失敗錯誤
- 7. SQL:轉換失敗錯誤
- 8. SQL錯誤(POSTGRES)
- 9. 從SQL腳本導入始終失敗
- 10. 這個SQL腳本爲什麼失敗?
- 11. FTP腳本失敗
- 12. Liquibase腳本失敗
- 13. PowerShell腳本失敗
- 14. bash腳本丟失']'錯誤
- 15. postgres on heroku sql語句失敗
- 16. 警告:espcomm_sync失敗錯誤:espcomm_open失敗錯誤:espcomm_upload_mem失敗
- 17. Postgres的:pg_base_backup失敗
- 18. SQL腳本語法錯誤
- 19. SQL教程腳本錯誤
- 20. SQL腳本外鍵錯誤
- 21. Sql腳本 - 錯誤的語法錯誤
- 22. SQL Server 2008-使用Scripter.EnumScript的腳本數據失敗,出現「用戶登錄失敗」錯誤
- 23. SQL Server恢復錯誤 - 寫在?失敗
- 24. SQL Server連接錯誤:實例失敗
- 25. SQL Server:備份失敗錯誤
- 26. sql錯誤:轉換nvarchar轉換失敗
- 27. SQL Server備份失敗,錯誤64
- 28. Python - 腳本失敗時撤消腳本
- 29. 500服務器腳本執行失敗錯誤PHP
- 30. 當perl腳本失敗時,apache error.log內沒有錯誤
是的,但它仍然解析了一切。如果您只想在第一次成功時執行第二次*事務,則這不起作用。 – Wildcard 2017-05-06 04:22:28