| 1 | CREATE TEMP TABLE temp_names (name VARCHAR(255));
|
|---|
| 2 |
|
|---|
| 3 | COPY temp_names (name)
|
|---|
| 4 | FROM 'C:\temp\names_only_1000.csv'
|
|---|
| 5 | WITH (FORMAT csv, HEADER true, DELIMITER ',');
|
|---|
| 6 |
|
|---|
| 7 | SELECT * FROM temp_names LIMIT 5;
|
|---|
| 8 |
|
|---|
| 9 | CREATE TEMP TABLE temp_surnames (surname VARCHAR(255));
|
|---|
| 10 |
|
|---|
| 11 | COPY temp_surnames (surname)
|
|---|
| 12 | FROM 'C:\temp\surnames_only_1000.csv'
|
|---|
| 13 | WITH (FORMAT csv, HEADER true, DELIMITER ',');
|
|---|
| 14 |
|
|---|
| 15 | SELECT * FROM temp_surnames LIMIT 5;
|
|---|
| 16 |
|
|---|
| 17 | INSERT INTO "User" (FirstName, LastName, Username, Email, password)
|
|---|
| 18 | SELECT
|
|---|
| 19 | n.name,
|
|---|
| 20 | s.surname,
|
|---|
| 21 | LOWER(n.name || '.' || s.surname || row_number() OVER ()) AS Username,
|
|---|
| 22 | LOWER(n.name || '.' || s.surname || row_number() OVER () || '@vidi.mk') AS Email,
|
|---|
| 23 | 'pbkdf2_sha256$260000$standardhash'
|
|---|
| 24 | FROM temp_names n
|
|---|
| 25 | CROSS JOIN temp_surnames s
|
|---|
| 26 | LIMIT 1000000;
|
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 | INSERT INTO User_Subscription (UserUserID, SubscriptionSubscriptionID, Start_date, Status, Auto_renew)
|
|---|
| 30 | SELECT
|
|---|
| 31 | u.UserID,
|
|---|
| 32 | (SELECT SubscriptionID FROM Subscription ORDER BY random() LIMIT 1) AS SubscriptionID,
|
|---|
| 33 | CURRENT_DATE - (random() * 30)::int AS Start_date,
|
|---|
| 34 | 'Active' AS Status,
|
|---|
| 35 | (random() > 0.5)::int AS Auto_renew
|
|---|
| 36 | FROM "User" u
|
|---|
| 37 | ORDER BY random()
|
|---|
| 38 | LIMIT 500000;
|
|---|
| 39 |
|
|---|
| 40 | SELECT Auto_renew, COUNT(*)
|
|---|
| 41 | FROM User_Subscription
|
|---|
| 42 | GROUP BY Auto_renew;
|
|---|
| 43 |
|
|---|
| 44 | UPDATE User_Subscription
|
|---|
| 45 | SET Auto_renew = (CASE WHEN random() > 0.5 THEN 1 ELSE 0 END);
|
|---|
| 46 |
|
|---|
| 47 | UPDATE User_Subscription
|
|---|
| 48 | SET End_date = CURRENT_DATE + (INTERVAL '1 month' + random() * (INTERVAL '11 months'))
|
|---|
| 49 | WHERE End_date IS NULL; |
|---|