在PostgreSQL中插入随机数据,但有选择
所以我要为3k列插入一个数据,但我希望它们有随机插入集。 例如: “ATMOUTOFSERVICE”、“ATMBEINGSERVICE”、“NETWORKCONNECTIONLOST”、“BLACKSCREEN”在PostgreSQL中插入随机数据,但有选择,postgresql,Postgresql,所以我要为3k列插入一个数据,但我希望它们有随机插入集。 例如: “ATMOUTOFSERVICE”、“ATMBEINGSERVICE”、“NETWORKCONNECTIONLOST”、“BLACKSCREEN” 是否有任何可能的方法可以将它们随机插入到我的列中,但仅限于这些选项?您可以使用以下方法: insert into target_table (some_column) select case (random() * 3 + 1)::int when 1 then '
是否有任何可能的方法可以将它们随机插入到我的列中,但仅限于这些选项?您可以使用以下方法:
insert into target_table (some_column)
select case (random() * 3 + 1)::int
when 1 then 'ATMOUTOFSERVICE'
when 2 then 'ATMBEINGSERVICE'
when 3 then 'NETWORKCONNECTIONLOST'
when 'BLACKSCREEN'
end
from generate_series(1,...);
或者使用数组:
insert into target_table (some_column)
select (array['ATMOUTOFSERVICE',
'ATMBEINGSERVICE',
'NETWORKCONNECTIONLOST',
'BLACKSCREEN'])[(random() * 3 + 1)::int]
from generate_series(1, ...);
您可以使用以下内容:
insert into target_table (some_column)
select case (random() * 3 + 1)::int
when 1 then 'ATMOUTOFSERVICE'
when 2 then 'ATMBEINGSERVICE'
when 3 then 'NETWORKCONNECTIONLOST'
when 'BLACKSCREEN'
end
from generate_series(1,...);
或者使用数组:
insert into target_table (some_column)
select (array['ATMOUTOFSERVICE',
'ATMBEINGSERVICE',
'NETWORKCONNECTIONLOST',
'BLACKSCREEN'])[(random() * 3 + 1)::int]
from generate_series(1, ...);
不能有包含3000列的表。你是说3000行吗?一定是纯Postgres解决方案吗?如果没有,您可以编写一个简短的Python、Java等程序来创建和执行INSERT语句。你是说3000行吗?一定是纯Postgres解决方案吗?如果没有,您可以编写一个简短的Python、Java等程序来创建和执行INSERT语句。我可以在更新查询中使用它吗?更新仪表板。事件集事件描述=选择数组['CAM停止服务','CAM正在服务','网络连接丢失','黑屏','BNA设备错误'][random*3+2::int]来自generate_series1,5;我一直在使用这段代码,但它不会更新空值。设置并生成_series:SET event_description=array['ATMOUTOFSERVICE','ATMBEINGSERVICE','NETWORKCONNECTIONLOST','BLACKSCREEN'][random*3+1::int]我可以在更新查询中使用此选项吗?更新dashboard.event SET event_description=选择数组['CAM停止服务','CAM正在服务','网络连接丢失','黑屏','BNA设备错误][random*3+2::int]从generate_series1,5;我一直在使用这段代码,但它不会更新空值SET rid of the select and generate_series:SET event_description=array['ATMOUTOFSERVICE','ATMBEINGSERVICE','NETWORKCONNECTIONLOST','BLACKSCREEN'][random*3+1::int]