Postgresql
錯誤:金錢類型的輸入語法無效
導入時出現此錯誤:
pg_restore: [archiver (db)] COPY failed for table "transaction_details": ERROR: invalid input syntax for type money: "$0.00"
restore
完成,但transaction_details
表是空的。這是 Heroku 的 PostgreSQL Dump 數據庫。Heroku 上的 PostgreSQL 版本是 9.3.15 和我的系統上的相同
我使用的命令:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U root -d database 577b86e3-8d96-4410-9b36-dd0f78cfe32f
有人可以提出解決方案嗎?
money
由於此數據類型的輸出對語言環境敏感,因此將數據載入到具有不同設置的數據庫中可能不起作用lc_monetary
。為避免出現問題,在將轉儲還原到新數據庫之前,請確保lc_monetary
其具有與轉儲數據庫中相同或等效的值。去檢查:
SHOW lc_monetary;
錯誤消息 ( ) 中的範例值
'$0.00'
適用於預設設置(除其他外):lc_monetary = 'C';
您可以設置它
postgresql.conf
,重新載入並重試…
money
這種特殊的行為是該類型不受歡迎的原因之一。