|
| 1 | +-- Set params |
| 2 | +set session my.number_of_sales = '2000000'; |
| 3 | +set session my.number_of_users = '500000'; |
| 4 | +set session my.number_of_products = '300'; |
| 5 | +set session my.number_of_stores = '500'; |
| 6 | +set session my.number_of_coutries = '100'; |
| 7 | +set session my.number_of_cities = '30'; |
| 8 | +set session my.status_names = '5'; |
| 9 | +set session my.start_date = '2019-01-01 00:00:00'; |
| 10 | +set session my.end_date = '2020-02-01 00:00:00'; |
| 11 | + |
| 12 | +-- load the pgcrypto extension to gen_random_uuid () |
| 13 | +CREATE EXTENSION pgcrypto; |
| 14 | + |
| 15 | +-- Filling of products |
| 16 | +INSERT INTO product |
| 17 | +select id, concat('Product ', id) |
| 18 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_products')::int) as id; |
| 19 | + |
| 20 | +-- Filling of countries |
| 21 | +INSERT INTO country |
| 22 | +select id, concat('Country ', id) |
| 23 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_coutries')::int) as id; |
| 24 | + |
| 25 | +-- Filling of cities |
| 26 | +INSERT INTO city |
| 27 | +select id |
| 28 | + , concat('City ', id) |
| 29 | + , floor(random() * (current_setting('my.number_of_coutries')::int) + 1)::int |
| 30 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_cities')::int) as id; |
| 31 | + |
| 32 | +-- Filling of stores |
| 33 | +INSERT INTO store |
| 34 | +select id |
| 35 | + , concat('Store ', id) |
| 36 | + , floor(random() * (current_setting('my.number_of_cities')::int) + 1)::int |
| 37 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_stores')::int) as id; |
| 38 | + |
| 39 | +-- Filling of users |
| 40 | +INSERT INTO users |
| 41 | +select id |
| 42 | + , concat('User ', id) |
| 43 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_users')::int) as id; |
| 44 | + |
| 45 | +-- Filling of users |
| 46 | +INSERT INTO status_name |
| 47 | +select status_name_id |
| 48 | + , concat('Status Name ', status_name_id) |
| 49 | +FROM GENERATE_SERIES(1, current_setting('my.status_names')::int) as status_name_id; |
| 50 | + |
| 51 | +-- Filling of sales |
| 52 | +INSERT INTO sale |
| 53 | +select gen_random_uuid () |
| 54 | + , round(CAST(float8 (random() * 10000) as numeric), 3) |
| 55 | + , TO_TIMESTAMP(start_date, 'YYYY-MM-DD HH24:MI:SS') + |
| 56 | + random()* (TO_TIMESTAMP(end_date, 'YYYY-MM-DD HH24:MI:SS') |
| 57 | + - TO_TIMESTAMP(start_date, 'YYYY-MM-DD HH24:MI:SS')) |
| 58 | + , floor(random() * (current_setting('my.number_of_products')::int) + 1)::int |
| 59 | + , floor(random() * (current_setting('my.number_of_users')::int) + 1)::int |
| 60 | + , floor(random() * (current_setting('my.number_of_stores')::int) + 1)::int |
| 61 | +FROM GENERATE_SERIES(1, current_setting('my.number_of_sales')::int) as id |
| 62 | + , current_setting('my.start_date') as start_date |
| 63 | + , current_setting('my.end_date') as end_date; |
| 64 | + |
| 65 | +-- Filling of order_status |
| 66 | +INSERT INTO order_status |
| 67 | +select gen_random_uuid () |
| 68 | + , date_sale + random()* (date_sale + '5 days' - date_sale) |
| 69 | + , sale_id |
| 70 | + , floor(random() * (current_setting('my.status_names')::int) + 1)::int |
| 71 | +from sale; |
0 commit comments