DO $$ DECLARE user_count INT := 5; -- Количество пользователей measurements_per_user INT := 100; -- Количество измерений на пользователя user_id INT; batch_id INT; BEGIN -- Добавление пользователей FOR i IN 1..user_count LOOP INSERT INTO users (name, rank_id) VALUES ('User' || i, i); user_id := currval(pg_get_serial_sequence('users', 'id')); -- Добавление пакетов измерений для каждого пользователя FOR j IN 1..(measurements_per_user / 10) LOOP INSERT INTO measurement_batch (start_period, user_id, pos_x, pos_y) VALUES (NOW() - (j || ' days')::interval, user_id, random() * 100, random() * 100); batch_id := currval(pg_get_serial_sequence('measurement_batch', 'id')); -- Добавление измерений в пакет FOR k IN 1..10 LOOP INSERT INTO measurement_params (measurement_type_id, measurement_batch_id, height, temperature, pressure, wind_speed, wind_direction, bullet_speed) VALUES ( 1, -- Тип измерения batch_id, random() * 1000, -- Высота (random() * 116 - 58)::NUMERIC, -- Температура (-58..58) (random() * 400 + 500)::NUMERIC, -- Давление (500..900) random() * 20, -- Скорость ветра (random() * 60)::INT, -- Направление ветра (0..59) random() * 1000 -- Скорость пули ); END LOOP; END LOOP; END LOOP; END $$;