我将其缩小到两种可能性 - DynamicSQL 和使用 case 语句。
但是,我在这两个方面都失败了。
我根本不了解dynamicSQL,以及在我的情况下如何使用它。
这是我使用 case 语句的尝试;许多失败的变体之一。
SELECT column_name,
CASE WHEN column_name = 'address' THEN (**update statement gives syntax error within here**)
END
FROM information_schema.columns
WHERE table_name = 'employees';
作为概述,我正在使用 Axios 与我的 Node 服务器通信,该服务器正在使用 Massivejs 调用我的 Heroku 数据库。
也许这不是要走的路 - 所以这是我的主要问题:
我遇到了麻烦,因为我计划用作列名的值作为字符串发送到我的服务器。我一直在尝试使用的确切电话是
update employees
set $1 = $2
where employee_id = $3;
再一次,我传递给那些使用大规模的人。
我得到了错误,{ error: syntax error at or near "'address'"}
因为我的传入值是字符串。我的想法是,上面的语句允许我使用变量,因为'address'
它是用引号封装的。
但是,唉,我的思维过程让我失望了。
这似乎接近回答我的问题,但如果使用动态 SQL,我似乎无法弄清楚在我的情况下该怎么做。
如何在函数的 UPDATE 或 SELECT 语句中使用动态列名?
提前致谢。