我有一個INTEGER列具有NOT NULL約束和DEFAULT值= 0;PostgreSQL:從csv缺失值複製到一個列與NOT NULL約束
我需要從一系列csv文件中複製數據。
在其中一些文件中,此列是一個空字符串。
到目前爲止,我已經將COPY命令中的NULL參數設置爲某個不存在的值,所以空字符串不會被轉換爲NULL值,但現在我收到一個錯誤,指出INTEGER列的空字符串值不正確。
我想使用COPY命令,因爲它的速度,但也許這是不可能的。 該文件不包含標題。文件中的所有列都有表中的對應項。
它有辦法規定:
空刺痛爲零,或
如果有恩空字符串使用默認的列值?
你的意思是空串如''?然後問題是類型不匹配。如果列只是空的,你的設置默認爲0應該可以正常工作'123,,456等'。 –
是的,我認爲問題在於你說的類型不匹配,但由於某種原因它不起作用。我沒有使用postgreSQL的經驗,但在我看來,COPY就像是BULK insert,並且沒有違約行爲。我已經實現了一個解決方法,我使用允許NULL的臨時表,然後將所有NULL更新爲默認值,最後將記錄插入到目標表中。我可以在明天發佈工作示例以及文件示例 –