【发布时间】:2016-05-15 16:10:14
【问题描述】:
我正在使用这个 PostgreSQL 表来存储配置变量:
CREATE TABLE SYS_PARAM(
SETTING_KEY TEXT NOT NULL,
VALUE_TYPE TEXT,
VALUE TEXT
)
;
如何使用一条 SQL 语句更新所有配置设置值?
【问题讨论】:
-
只需对每个参数使用单独的更新。
-
是的,但努力是减少 SQL 查询的数量。如果我有数百行怎么办?我不能轻易维护这么多查询。
-
除非您要解决特定的性能问题,否则尝试更新 EAV 数据模型中的多行是过早的优化。您可以将更新包装在事务中,以便它们同时发生。即使运行几百个查询需要几百毫秒,更改此类设置也应该很少见,那么这对整体性能的影响应该可以忽略不计。
-
你能给我看一个交易的例子吗?
-
恕我直言,当前表格缺少关键元素;它只允许存储一种配置。所以这不是 EAV 模型而是 AV 模型,这是相当无用的,除非用作实例化其他配置的模板。这也需要额外的关键元素。
标签: sql postgresql sql-update postgresql-9.1 postgresql-9.3