使用COPY在postgresql表中插入其他列值(文件中不可用)

使用COPY在postgresql表中插入其他列值(文件中不可用),sql,postgresql,csv,insert,postgresql-copy,Sql,Postgresql,Csv,Insert,Postgresql Copy,表列: col1, col2, col3, fname, lname CSV文件包含如下值: col1,col2,col3 val1,val2,val3 val1,val2,val3 我想使用postgres的复制功能在表中添加csv数据以及附加数据,即col1、col2、col3、fname、lname 这可以通过复制来完成吗? 如果没有,请建议解决方法。您可以在以下列表中指定列: 标题选项告诉复制忽略第一行。我正在使用以下解决方法, 我已经创建了一个shell脚本,用于在CSV文件中为其

表列:

col1, col2, col3, fname, lname
CSV文件包含如下值:

col1,col2,col3
val1,val2,val3
val1,val2,val3
我想使用postgres的复制功能在表中添加csv数据以及附加数据,即
col1、col2、col3、fname、lname

这可以通过复制来完成吗?
如果没有,请建议解决方法。

您可以在以下列表中指定列:


标题
选项告诉
复制
忽略第一行。

我正在使用以下解决方法, 我已经创建了一个shell脚本,用于在CSV文件中为其他列值添加前缀

additional_cols="Fred,Solo";#fname,lname
csv_file="filename.csv";
sed -i -e "s/^/$additional_cols\,/" $csv_file

编辑文件后,使用postgres的
COPY
即可轻松导入值。用于
复制
文档。

psql\COPY支持从程序输出读取。我们可以使用cat和sed动态修改文件:


'cat myFile|sed's/$/;col1;col2/\''

我需要添加额外的值。这些值在CSV中不可用。您使用
update
查询
copy
设置
copy
之后的其他列是不可能的?我需要添加一个默认布尔值为
false
的列,它就起作用了。复制csv文件之前,无需在csv文件中添加值。谢谢
additional_cols="Fred,Solo";#fname,lname
csv_file="filename.csv";
sed -i -e "s/^/$additional_cols\,/" $csv_file