我收到一条信息:
ERROR: extra data after last expected column
CONTEXT: COPY words, line 1: ",a"
字符串
当我运行这个命令时:第一个月
导入的文件如下所示:
,a
,aah
,aahed
,aahing
,aahs
,aardvark
,aardvarks
,aardwolf
,ab
型
这是一个从电子表格导出的.csv文件,在VS Code中打开,并在做了一些小的修改后保存。我已经尝试了csv格式的许多变体:带逗号,在行尾带逗号,在行尾带回车符,等等。等等,我想这就是问题所在,但这似乎也与psql没有在第一列创建id有关;方案如下:
Table "public.words"
Column | Type | Collation | Nullable | Default
--------+------+-----------+----------+---------
id | uuid | | not null |
word | text | | |
Indexes:
"words_pkey" PRIMARY KEY, btree (id)
"uq:words.word" UNIQUE CONSTRAINT, btree (word)
型
编辑:我想知道这是否与id非空但不是串行有关。这个db由Vapor使用,它通常生成作为UUID的id。但在这种情况下,似乎psql不能生成这些,也不能将该字段留空。
有没有办法让sql为id列生成一个UUID?这似乎应该是基本的,但我找不到任何参考这个特定的问题。
如果这影响到任何事情,这一切都发生在Docker中。
1条答案
按热度按时间qfe3c7zg1#
解决方案更像是一种变通办法。这个问题确实是因为sql没有(至少从我所学到的)生成uuid的工具。因此,我重新生成了csv文件,在第一列之前添加了第二列,并使用了一个通用的串联公式在电子表格中生成uuid模式的字符串,尽管我可能更愿意通过编程来完成。
无论哪种方式,导出该文件并将其复制进来都是有效的。