【问题标题】:Update PSQL rows with different random values each用不同的随机值更新 PSQL 行
【发布时间】:2018-02-07 13:52:46
【问题描述】:

我正在尝试批量更新表格中的每一行,并为它们分配一个单独的位置。这是我正在使用的查询

UPDATE point SET location=
  ST_PointFromText('POINT(' || 
  (SELECT random()+5) || ' ' ||
  (SELECT random()+5) || ')', 4326) 
  WHERE parent_id=100;

问题是每一行都会收到完全相同的值。

【问题讨论】:

    标签: postgresql gis


    【解决方案1】:

    我发现this article by Szymon Lipiński 涉及我的问题。以下是我修复查询的方法:

    UPDATE point p SET location=
      ST_PointFromText('POINT(' || 
      ((SELECT random() WHERE p=p)+5) || ' ' ||
      ((SELECT random() where p=p)+5) || ')', 4326) 
      WHERE parent_id=100;
    

    为了强制 PostgreSQL 每次都重新计算表达式,需要一个外部依赖项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多