On 12/02/09, Rory Campbell-Lange (r...@campbell-lange.net) wrote:
> I have a test system for which I need to replace actual user's data (in
> 'users') with anonymised data from another table ('testnames') on
> postgres 8.3. 
> 
> The tricky aspect is that each row from testnames must be randomised to
> avoid each row in users being updated with the same value.
> 
> I've been trying to avoid a correlated subquery for each column I am trying
> to update, and instead trying the following, which never returns. There are
> 2000 records in testnames and about 200 in users. 

I'm obviously doing something badly wrong because:

    UPDATE  
            users
    SET t_firstname =
                    (select firstname from testnames order by random() limit 1),
        t_surname = 
                    (select lastname from testnames order by random() limit 1)
    WHERE   
            n_role IN (2,3);

Doesn't return either after 60 seconds on a 8 core machine with 8GB of
RAM and 15K disks in R10 (no swap in use).

Rory

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to