M. *_*cik 4 java sql eclipse postgresql
我在db中有一个表:
CREATE TABLE operation ( <br>
id integer NOT NULL DEFAULT NEXTVAL ('seq_operation'),( <br>
phone_number varchar(30),( <br>
age integer,( <br>
gender char(1),( <br>
isActive boolean,( <br>
date_of_surgery timestamp,( <br>
);
Run Code Online (Sandbox Code Playgroud)
我需要插入10000行随机数据。如何制作这样的INSERT语句?我对这些东西很新鲜,并试图在这里用其他答案来解决类似的问题,但是找不到适合我的简单答案。
我将衷心感谢您的帮助。
最好的问候,马克斯
我通常使用的是psql这样的东西:
INSERT INTO table (values, to, fill)
SELECT random(), random(), random() from generate_series(1,10000);
Run Code Online (Sandbox Code Playgroud)
在您的情况下,这将是:
INSERT INTO operation (
phone_number,
age,
gender,
isActive,
date_of_surgery
) SELECT
'some-phone-' || round(random()*1000), -- for text
round(random()*70), -- for integer
(ARRAY['f','m'])[round(random())+1], -- for char/enum
(ARRAY[false,true])[round(random())+1], -- for boolean
now() + round(random()*1000) * '1 second'::interval -- for timestamps
FROM generate_series(1,10000);
Run Code Online (Sandbox Code Playgroud)
多一点解释。
generate_series将为您提供循环,您还可以访问其生成的值。现在不需要了。
'text' || round(random()*1000) 可以生成类似于“ text-1212”的唯一字符串。
round(random()*70) -您需要四舍五入,因为random()返回的浮点值介于0和1之间。
(ARRAY['f','m'])[round(random())+1] -对于枚举等,构建一个数组并为其生成随机索引
now() + round(random()*1000) * '1 second'::interval-获取基准日期并添加随机时间间隔。
(小提琴)
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |