我试图在 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
最佳答案
正如消息所说,这不是“一些无效行”的问题,你有不兼容的类型
对于 email_date
列。要么修复它,要么在查询中写入显式转换。
更新:如果(看起来)您想要复制内容和表的模式(即创建一个具有相同模式的新表并复制内容),您可以这样做只需一个 SELECT INTO .
关于database - 使用 Postgres 复制整个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772976/