【发布时间】: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