0

我有一个包含列名和数据的 CSV,但没有列 ID。当我通过此命令行导入数据时:

type "..\MyCSVtoImport.csv" | "..\psql.exe" -h MyServerPostgres -p 5432 -U "MyUser" -c " COPY mytable FROM STDIN DELIMITER ',' CSV HEADER; " MyBase

我仍然有这个错误:错误:列“id”缺少数据

谢谢你的帮助

4

2 回答 2

0

替代解决方案:

CREATE mytable_import AS SELECT * FROM mytable LIMIT 0;
ALTER TABLE mytable_import DROP COLUMN id;

--COPY to mytable_import

INSERT INTO mytable SELECT nextval('mytable_id_seq') AS id, * FROM mytable_import;

将实际序列名称替换为nextval. 此外,这可能需要根据您是追加还是以 empty 开始进行调整mytable。可能需要附加一个ON CONFLICT子句。

于 2021-10-11T16:49:52.990 回答
0

您可以使用以下命令指定列列表COPY

COPY mytable (col1, col2, ...) FROM STDIN;

在这里,您只需列出除 之外 的所有列id

于 2021-10-11T11:21:49.853 回答