当前位置: 首页 > 知识库问答 >
问题:

test.csv文件问题的Postgres表

苏浩瀚
2023-03-14

我想将csv文件复制到表中。所有csv文件列都映射到表列。但表中有一个自动递增列。

例如:

test.csv文件有3列A、B、C。相对值是“城市”、“名称”、“性别”

A-------B-------C
city----name----sex

测试表也有4列seq_no、A、B、C。seq_no是自动增量列。

从“test.csv”分隔符“复制到testtable”,csv它将有一个错误:复制tabletst,第1行,cloumn序号:“city”。

事实上,我希望第一行是

seq_no---A-------B-------C
1        city    name    sex

我不能改变csv和表。bcz他们是常见的。

我使用shell中的postgrescopy命令将csv数据插入表中。如何解决这个问题?

共有1个答案

冯枫涟
2023-03-14

尝试添加要复制到的列:

COPY testtable(a, b, c)
FROM "test.csv"
DELIMITER ',',
FORMAT CSV

现在应使用列序号的默认值。

编辑:由于列名正在更改,并且我们只知道它们在表中的位置,因此我们可能会从目录中动态获取它们,并在以后使用它们来构建COPY命令:

SELECT a.attname
FROM pg_attribute a
INNER JOIN pg_class c ON c.oid = a.attrelid
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname = 'insertTableNameHere'
    AND n.nspname = 'insertSchemaNameHere' --probably public
    AND a.attnum > 1
ORDER BY a.attnum

这为您提供了每个通常可见的列(因此,如果您使用SELECT*,您会看到这些列),按从左到右的顺序排列。

 类似资料:
  • 问题内容: 我必须使用分布在不同机器上且都在运行linux的几个postgresql数据库进行模拟。 我已经成功地从源代码编译并构建了postgresql,我也可以运行服务器,但是当我尝试使用此命令创建新的数据库时: 我收到此错误: 其中giulio是我用于访问所有计算机的用户名。 在某些机器上它可以工作,而在其他机器上则不能。我真的无法弄清楚问题的根源。我想这与postgres的访问控制有关。

  • 问题内容: 我正在使用Hibernate 4.0将jpegs存储到postgres 9.1.4中(jdbc是postgresql-9.1-901.jdbc4.jar)bytea列(byte []是hibernate实体,没有额外的类型def)。 hibernate存储过程工作正常,因为我可以使用数据库工具来转储bytea列并仍然获取jpeg。基本上是: 在managedBean中 此时,字节看起来

  • 作为学习r2DBC的一部分,我遇到了Enum转换面临的问题。我在这里使用PostgreSQL。当读取评级为PG-13和NC-17(任何带破折号的东西)的电影数据时,我面临问题。 下面是我的表模式 mpaa_rating定义为 这是我的代码,它在我的配置中注册转换器 我的检索代码很简单 添加引发的异常https://gist.github.com/harryalto/bd51bbcdd081868c

  • 已更新 无法连接到postgres数据库。postgres的依赖关系是通过Maven添加的。 Maven依赖项 Postgres池 获取连接的代码 如果您有相同的问题,请将代码更改为:

  • 在edge中,我正在访问一个JSP页面,该页面会返回一个文件。它在chrome中工作得很好,但在Edge和Internetexplorer中,我会将mime类型附加到文件名中。 这是响应标头: Edge要求我保存文件,文件名是 persistenceIDs.xlsx.vnd.openxmlformats-officedocument.spreadsheetml.sheet 有什么想法吗?

  • 我试图用centOS 32位安装一个服务器在上面安装艾特莱森Jira我按照官方艾特莱森安装指南在https://confluence.atlassian.com/display/JIRA/InstallingJIRA 现在我正在运行安装向导,需要配置PostgreSQL数据库。在centOS上,我通过yum安装了8.4.20版。然而,我很难设置吉拉。Postgres正在运行,我可以通过Linux控