使用pgsql中查询的csv文件更新表

时间:2017-07-11 12:11:41

标签: mysql node.js postgresql csv

概念是在上传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 """"

如果查询错误,请纠正我

2 个答案:

答案 0 :(得分:1)

    截断表后,
  1. 没有要更新的行 - 您需要插入。

  2. 双引号用于标识符 - 数据库对象,因此在替换函数中,您使用'string'"column_name"

答案 1 :(得分:1)

这似乎是您的语法的postgres问题。改变你的""到''在你的替换中。双引号标识分隔值,空字符串不能代表,而单引号只标记字符串值。如果您在此处需要分隔值,则必须在双引号内添加一些内容,使其不是空字符串。

正如Vao Tsun指出的那样,您可能需要将UPDATE更改为INSERTUPDATE修改当前行,而INSERT添加新行。由于TRUNCATE TABLE会删除所有行,因此您无需在以下查询中进行更新。这不会引发错误,因为这是有效的,但您可能看不到查询的效果。