Postgresql 是否使用“复制”,但表中有额外的列?
我有一个来自供应商的CSV文件。我想把它复制到一个表中,除了这个表有几个额外的列,我想通过触发器中的派生来填充这些列。相当直接的复制:Postgresql 是否使用“复制”,但表中有额外的列?,postgresql,Postgresql,我有一个来自供应商的CSV文件。我想把它复制到一个表中,除了这个表有几个额外的列,我想通过触发器中的派生来填充这些列。相当直接的复制:从“/some/file.csv”分隔符“、”csv”复制mytable copy命令无法告诉我缺少数据: 错误:“到达日期”列缺少数据 当然,该列不在原始csv中。有没有一种方法可以强制副本只填充它得到的列?本质上,csv有前18列,然后还有两列我通过触发器派生和填充。我尝试为表声明中的列指定一个默认值,但没有帮助。这相当简单。与插入类似,COPY允许您指定输入
从“/some/file.csv”分隔符“、”csv”复制mytable代码>
copy命令无法告诉我缺少数据:
错误:“到达日期”列缺少数据
当然,该列不在原始csv中。有没有一种方法可以强制副本只填充它得到的列?本质上,csv有前18列,然后还有两列我通过触发器派生和填充。我尝试为表声明中的列指定一个默认值,但没有帮助。这相当简单。与插入类似,COPY
允许您指定输入字段字段对应的列
如果您的表中有col1
、col2
、col3
和col4
,但文件不包含第三列,您可以
COPY atable(col1, col2, col4)
FROM '/some/file.csv'
(FORMAT 'csv', DELIMITER ',');
那是相当微不足道的。与插入类似,COPY
允许您指定输入字段字段对应的列
如果您的表中有col1
、col2
、col3
和col4
,但文件不包含第三列,您可以
COPY atable(col1, col2, col4)
FROM '/some/file.csv'
(FORMAT 'csv', DELIMITER ',');
这适用于psqlSo中的COPY
和\COPY
,如果csv有3列a、b、c
,而我的表有4列a、b、c、d
,我可以从'some/file.cxv'
复制(a、b、c),它将停止抱怨缺少的d列?是的。你可以自己验证。这既适用于psqlSo中的COPY
,也适用于\COPY
,如果csv有3列a、b、c
,而我的表有4列a、b、c、d
,我可以从'some/file.cxv'
复制(a、b、c),它就不会再抱怨缺少d列了?是的。你可以自己验证。