| 1 | CREATE TEMPORARY TABLE temp_devices1 (
|
|---|
| 2 | device_type VARCHAR(255),
|
|---|
| 3 | last_login TEXT,
|
|---|
| 4 | user_sub_id INT
|
|---|
| 5 | );
|
|---|
| 6 |
|
|---|
| 7 | COPY temp_devices1 (device_type, last_login, user_sub_id)
|
|---|
| 8 | FROM 'C:\temp\devices_data_20250422.csv'
|
|---|
| 9 | WITH (FORMAT csv, HEADER true, DELIMITER ',');
|
|---|
| 10 |
|
|---|
| 11 | INSERT INTO Devices (DeviceType, LastLogIn, UserSubscriptionID)
|
|---|
| 12 | SELECT
|
|---|
| 13 | device_type,
|
|---|
| 14 | CASE
|
|---|
| 15 | WHEN last_login = '2025-02-29' THEN '2025-02-28'::DATE
|
|---|
| 16 | ELSE last_login::DATE
|
|---|
| 17 | END,
|
|---|
| 18 | user_sub_id
|
|---|
| 19 | FROM temp_devices1;
|
|---|
| 20 |
|
|---|
| 21 | INSERT INTO User_Devices (UserUserID, DevicesDeviceID)
|
|---|
| 22 | SELECT UserSubscriptionID, DeviceID
|
|---|
| 23 | FROM Devices
|
|---|
| 24 | WHERE DeviceID NOT IN (SELECT DevicesDeviceID FROM User_Devices);
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 | BEGIN;
|
|---|
| 28 |
|
|---|
| 29 | INSERT INTO Devices (DeviceType, LastLogIn, UserSubscriptionID)
|
|---|
| 30 | SELECT
|
|---|
| 31 | t.device_type,
|
|---|
| 32 | (CURRENT_DATE - (random() * 365)::int),
|
|---|
| 33 | sub.UserSubscriptionID
|
|---|
| 34 | FROM user_subscription sub
|
|---|
| 35 | CROSS JOIN LATERAL (
|
|---|
| 36 | SELECT device_type
|
|---|
| 37 | FROM temp_devices1
|
|---|
| 38 | ORDER BY random()
|
|---|
| 39 | LIMIT 1
|
|---|
| 40 | ) t;
|
|---|
| 41 |
|
|---|
| 42 | COMMIT;
|
|---|
| 43 |
|
|---|
| 44 | INSERT INTO User_Devices (UserUserID, DevicesDeviceID)
|
|---|
| 45 | SELECT UserSubscriptionID, DeviceID
|
|---|
| 46 | FROM Devices
|
|---|
| 47 | ON CONFLICT DO NOTHING;
|
|---|
| 48 |
|
|---|