2016-12-20 34 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的更新。
  • 用這些隨機ID創建一個新表。

    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()',以便每行評估一次。 –