Apenas uma pequena adição a fazer, pois acabei com um resultado estranho ao tentar modificar os UUIDs conforme eram gerados. Descobri que a resposta de Rakesh é a mais simples e funciona bem, exceto nos casos em que você deseja remover os travessões.
Para referência:
UPDATE some_table SET some_field=(SELECT uuid());
Isso funcionou perfeitamente sozinho. Mas quando eu tentei isso:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Então, todos os valores resultantes eram os mesmos (não sutilmente diferentes - verifiquei quádruplamente com uma GROUP BY some_field
consulta). Não importa como coloquei os parênteses, acontece a mesma coisa.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Parece que, ao cercar a subconsulta para gerar um UUID com REPLACE, ela só executa a consulta UUID uma vez, o que provavelmente faz sentido como uma otimização para desenvolvedores muito mais inteligentes do que eu, mas não para mim.
Para resolver isso, acabei de dividi-lo em duas consultas:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Solução simples, obviamente, mas espero que isso economize o tempo que acabei de perder.