使用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