Mysql 在pgsql中使用查询中的csv文件更新表
概念是上传csv文件,旧表应删除,新文件应替换旧数据 我在其中使用nodejs,我编写了两个查询Mysql 在pgsql中使用查询中的csv文件更新表,mysql,node.js,postgresql,csv,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文件也有相同的数据类型var char的4列t1、t2、t3、t4 执行时,我得到了错误 error: zero-
TRUNCATE TABLE test
然后,更新表的第二个查询是
UPDATE test SET
t1 = replace(t1,"")
,t2 = replace(t2,"")
,t3 = replace(t3,"")
,t4 = replace(t4,"")
我的虚拟csv文件也有相同的数据类型var char的4列t1、t2、t3、t4
执行时,我得到了错误
error: zero-length delimited identifier at or near """"
如果问题不对,请纠正我
'string'
和“column\u name”
'string'
和“column\u name”
这似乎是postgres的语法问题。将替换中的“”更改为“”。双引号标识分隔值,空字符串不能代表分隔值,而单引号仅标记字符串值。如果在这里需要分隔值,则必须在双引号中添加一些内容,使其不是空字符串
正如Vao Tsun所指出的,您可能需要将
更新
更改为插入
UPDATE
修改当前行,而INSERT
添加新行。由于TRUNCATE TABLE
删除了所有行,因此在下面的查询中将不需要更新任何行。这不会引发错误,因为这是有效的,但您可能看不到查询的任何影响。这似乎是您的语法的postgres问题。将替换中的“”更改为“”。双引号标识分隔值,空字符串不能代表分隔值,而单引号仅标记字符串值。如果在这里需要分隔值,则必须在双引号中添加一些内容,使其不是空字符串
正如Vao Tsun所指出的,您可能需要将更新
更改为插入
UPDATE
修改当前行,而INSERT
添加新行。由于TRUNCATE TABLE
删除了所有行,因此在下面的查询中将不需要更新任何行。这不会引发错误,因为这是有效的,但您可能不会看到查询的任何影响