Re: Using random() in update produces same random value for all - Mailing list pgsql-general

From Ken Tanzer
Subject Re: Using random() in update produces same random value for all
Date
Msg-id CAD3a31Wkji3HCPxcRDdA6P6xHjjURV-YP_Z6wYitqSpc2G0e4g@mail.gmail.com
Whole thread Raw
In response to Using random() in update produces same random value for all  (Alex Magnum <magnum11200@gmail.com>)
List pgsql-general


On Sun, Jan 14, 2018 at 2:01 AM, Alex Magnum <magnum11200@gmail.com> wrote:
Hi,
i am trying to update a table with some random dates but that does not seem to work.

UPDATE table
   SET last_update=now()::date-(SELECT (random() * 5)::INTEGER + 1)

The updated field is always set to the same. Is there a way to make it random for every record?

I could run it through a function but I wonder if there is s simpler way.

 
I verified this with a SELECT, not an UPDATE, but I think leaving this as a simple expression will do what you want.  Just leave out the SELECT:

 UPDATE table
   SET last_update=now()::date-((random() * 5)::INTEGER + 1)

Cheers,
Ken

--
AGENCY Software  
A Free Software data system
By and for non-profits
(253) 245-3801

learn more about AGENCY or
follow the discussion.

pgsql-general by date:

Previous
From: Alex Magnum
Date:
Subject: Using random() in update produces same random value for all
Next
From: "Peter J. Holzer"
Date:
Subject: Re: Sv: Re: Sv: Re: Sv: Re: Sv: Re: data-checksums