【问题标题】:How to copy data from column to another column in dffrent database and schema?如何将数据从列复制到不同数据库和架构中的另一列?
【发布时间】:2021-06-29 18:59:23
【问题描述】:

我正在尝试将特定数据列从一个表导出到另一个表。第一个表有以下列(按此顺序):

id, uid, name, email

另一个数据库上的第二个表(空),其列如下(按此顺序):

id, email, login_token, remember_created_at, name, uid

按照this,我正在做类似的事情:

要导出:

docker exec -t [my-container] psql -U postgres -d [source_db_name] -c "Copy (Select id, uid, name, email From users) To STDOUT With CSV HEADER DELIMITER ',';" > users.csv

要导入:

cat users.csv | docker exec -i [my-container] psql -U postgres -d [target_db_name] -c "\copy users FROM STDIN WITH DELIMITER ',' csv header;" < users.csv

我收到此错误:

ERROR:  invalid input syntax for type timestamp: "some string from email column"
CONTEXT:  COPY users, line 2, column remember_created_at: "some string from email column"

这意味着我的列顺序有冲突。 email 值被插入到 remember_created_at 列中。

我需要一种方法将第一表中每一列的数据获取到具有相同名称的同一列:

name --> name
id   --> id
email --> email

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您可以指定目标列:... copy users(id, uid, name, email) FROM STDIN WITH DELIMITER ...

    请注意,它们应该按照与文件内容相同的顺序列出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2016-03-15
      • 2011-09-12
      • 2016-04-16
      相关资源
      最近更新 更多