【问题标题】:updating table using csv file from query in pgsql使用 pgsql 中的查询中的 csv 文件更新表
【发布时间】:2017-12-15 12:00:00
【问题描述】:

这个概念是关于上传一个 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

在执行时出现错误

error: zero-length delimited identifier at or near """"

如有错误请指正

【问题讨论】:

    标签: mysql node.js postgresql csv


    【解决方案1】:
    1. 截断表后,您没有要更新的行 - 您需要插入。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-09-20
        • 1970-01-01
        • 1970-01-01
        • 2020-03-06
        • 2020-06-02
        • 1970-01-01
        相关资源
        最近更新 更多