Re: Conditional update - Mailing list pgsql-sql

From Stuart
Subject Re: Conditional update
Date
Msg-id CALmuyMopGff8HOim7hgijq9HqYBCJkvPh7Hyg9NNtJawG+oC=w@mail.gmail.com
Whole thread Raw
In response to Conditional update  (Lahari Sengupta <jhinik8@gmail.com>)
List pgsql-sql
Lahari,

I'm not sure about the st function but your query is slightly off, just minor changes as below should work:

UPDATE sites st
    SET time_stamp = sv.timing FROM servers sv
    WHERE st_distance(st.geom, sv.geom) < 9 AND sv.workmode = TRUE  ;





On Feb 12, 2018 3:33 PM, "Lahari Sengupta" <jhinik8@gmail.com> wrote:
I have two table name servers and sites. Servers contains timing and workmode and geometry values. Where sites contains geometry values and an empty time_stamp column. I want to fill this  time_stamp column. For this, I want to check for all servers data whether it is within 9 unit distant from each sites. Hence, servers data 1 will search for all the sites and if it finds a site within 9 unit then it checks for its own work mode, if it is true then it writes the time in time_stamp column of that sites record. All the servers data with true work mode should find out one site. But there can be more sites. So, all the sites records might not update. For this I have written the following query. But not sure whether it is serving my purpose properly or not. Can anyone suggest?

UPDATE sites st
    SET time_stamp = timing FROM servers sv
    WHERE st_distance(st.geom, sv.geom) < 9 AND st.workmode = TRUE
    ;

pgsql-sql by date:

Previous
From: Lahari Sengupta
Date:
Subject: Conditional update
Next
From: ROS Didier
Date:
Subject: pg_walldump and PITR. PostgreSQL 10.1