是否有命令設置一個選項,即使存在錯誤也會導致PostgreSQL腳本繼續運行?有沒有辦法設置一個選項,即使有錯誤也會導致PostgreSQL腳本繼續運行?
例如,有時當我從電子表格中插入大量數據以插入表格時,我使用公式創建INSERT語句,並將語句複製到文件中並執行它們,或者將它們複製到PgAdmin中運行它們。準確性並不總是很重要,我不希望整個過程因爲一些記錄而失敗。
語法錯誤在這裏不是問題,只是由於某些錯誤而失敗的命令,比如嘗試創建已存在的索引或插入重複的記錄。
是否有命令設置一個選項,即使存在錯誤也會導致PostgreSQL腳本繼續運行?有沒有辦法設置一個選項,即使有錯誤也會導致PostgreSQL腳本繼續運行?
例如,有時當我從電子表格中插入大量數據以插入表格時,我使用公式創建INSERT語句,並將語句複製到文件中並執行它們,或者將它們複製到PgAdmin中運行它們。準確性並不總是很重要,我不希望整個過程因爲一些記錄而失敗。
語法錯誤在這裏不是問題,只是由於某些錯誤而失敗的命令,比如嘗試創建已存在的索引或插入重複的記錄。
如果使用psql
,你想:
\set ON_ERROR_ROLLBACK on
從manual:
ON_ERROR_ROLLBACK
啓用時,如果在一個事務塊的聲明產生了錯誤, 錯誤被忽略,交易繼續。在交互時,這種 錯誤僅在交互式會話中被忽略,而不會在讀取 腳本文件時被忽略。當關(默認值),在交易 塊產生一個錯誤的聲明中止整個事務
啓用自動提交 – 2013-02-16 08:36:15
@a_horse_with_no_name這是否適用於任何命令不惜一切,而不僅僅是插入命令? – vfclists 2013-02-16 08:53:48
是的,這適用於所有命令(因爲幾乎Postgres中的每個語句都是事務性的) – 2013-02-16 09:10:25