概念是在上传csv文件时应删除旧表,新文件应替换旧数据 我在其中使用了nodejs,我写了两个查询
TRUNCATE TABLE test
然后用于更新表的第二个查询是
UPDATE test SET
t1 = replace(t1,"")
,t2 = replace(t2,"")
,t3 = replace(t3,"")
,t4 = replace(t4,"")
我的虚拟csv文件也有相同的4列t1,t2,t3,t4数据类型var char
执行Im时收到错误
error: zero-length delimited identifier at or near """"
如果查询错误,请纠正我
答案 0 :(得分:1)
没有要更新的行 - 您需要插入。
双引号用于标识符 - 数据库对象,因此在替换函数中,您使用'string'
和"column_name"
答案 1 :(得分:1)
这似乎是您的语法的postgres问题。改变你的""到''在你的替换中。双引号标识分隔值,空字符串不能代表,而单引号只标记字符串值。如果您在此处需要分隔值,则必须在双引号内添加一些内容,使其不是空字符串。
正如Vao Tsun指出的那样,您可能需要将UPDATE
更改为INSERT
。 UPDATE
修改当前行,而INSERT
添加新行。由于TRUNCATE TABLE
会删除所有行,因此您无需在以下查询中进行更新。这不会引发错误,因为这是有效的,但您可能看不到查询的效果。