我有一张table,上面有一堆田地。为简单起见,假设5个字段:
unique_id, currency_name, stock_description, company_name, city_name
字符串
例如,样本值为:
INTQL123, USD, "INT Stock", "International Stock Corporation", "CHICAGO"
型
另一个名为override_table的函数可以包含任意列的override值:
unique_id, override_column, override_value
型
样本值:
INTQL123, "city_name", "NEW YORK"
型
所以它是用新值“纽约”覆盖城市“芝加哥”的值
我希望能够用这样的动态列名编写SQL UPDATE语句。我们可以假设它们只属于varchar类型。你知道吗?
1条答案
按热度按时间ig9co6j11#
Yoy可以通过匿名PL/pgSQL块和动态SQL来实现这一点。
字符串
上面的代码是SQLi倾向的。在运行表
override_table
之前,请确保表override_table
中不存在恶意值。编辑
“有没有办法把更新的次数返回给调用者?“
匿名
do
块不返回任何内容。我想到了两种方法。dyn_update
,并从Java发出select dyn_update()
;型
select count(*) from override_table
,因为它将准确地返回更新的数量(除非do块发生异常)