2016-12-20 3 views
-1

Я хочу вставить случайные целые числа между 9000 и 7500 в столбец PostgreSQL. Поэтому я использовал:колонка обновления, не работающая в postgreSQL

update public.table 
set column_name = floor(random() * 9000 + 7500)::int; 

Но это не обновление колонки. Как я могу это сделать?

Любая помощь приветствуется!

ответ

1
update public.table 
set column_name = floor(random() * 9000 + 7500)::int; 

Это условие floor(random() * 9000 + 7500)::int оценивается только один раз. То, что вы хотите, чтобы либо

  • Создать запрос с uniqueid|randomid и присоединиться, что public.table для обновления.
  • Создайте новую таблицу с этими случайными идентификаторами.

    CREATE TABLE mytable AS 
    SELECT row_number() OVER() AS id, 
        floor(random()*(9000-2500)) + 2500 AS rand 
    FROM generate_series(1,1000); 
    
+0

Спасибо большое. Вместо соединения я создал таблицу и вставил столбец rand в мою public.table (column_name). – John

+0

Мне жаль, что существует способ вызвать 'random()' так, чтобы он оценивался один раз в строке. –

Смежные вопросы