1
我想要一個表中的內容複製到另一個Postgres裏,但它似乎有些行沒有被正確複製:複製整張表的Postgres
ActiveRecord::StatementInvalid: PGError: ERROR: column "email_date" is of type timestamp without time zone but expression is of type character varying HINT: You will need to rewrite or cast the expression.
有什麼辦法,我可以讓它自動跳過(或忽略)無效行?
下面是我使用的查詢:
SET statement_timeout = 0; INSERT INTO emails3 SELECT * FROM emails
謝謝,你知道它是否是電子郵件3有錯誤的列類型或電子郵件?有沒有簡單的方法讓我檢查? 我正在使用Rails,當我在控制檯中輸入「Email」查看電子郵件表格的模型時,它顯示email_date列的類型是datetime。對於Rails遷移和Postgres,這對應於「時間戳」。 – NudeCanalTroll 2010-05-05 12:12:58
查看錶的架構 - 您是否有權訪問psql控制檯?我猜源是一個字符,目標(emails3.email_date)是一個時間戳。但是這並不是說哪一個是「錯誤的」。 – leonbloy 2010-05-05 12:19:37
好吧,太好了。爲了確保兩個表具有完全相似的結構,我最終這樣做了:「CREATE TABLE emails3 AS SELECT * FROM emails WHERE 1 = 2」。之後,我的INSERT INTO能夠通過。謝謝你的幫助! – NudeCanalTroll 2010-05-05 12:58:26