回答
這不正是你想要的,但如果你有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