3.data.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132333435
  1. DO $$
  2. DECLARE
  3. user_count INT := 5; -- Количество пользователей
  4. measurements_per_user INT := 100; -- Количество измерений на пользователя
  5. user_id INT;
  6. batch_id INT;
  7. BEGIN
  8. -- Добавление пользователей
  9. FOR i IN 1..user_count LOOP
  10. INSERT INTO users (name, rank_id) VALUES ('User' || i, i);
  11. user_id := currval(pg_get_serial_sequence('users', 'id'));
  12. -- Добавление пакетов измерений для каждого пользователя
  13. FOR j IN 1..(measurements_per_user / 10) LOOP
  14. INSERT INTO measurement_batch (start_period, user_id, pos_x, pos_y)
  15. VALUES (NOW() - (j || ' days')::interval, user_id, random() * 100, random() * 100);
  16. batch_id := currval(pg_get_serial_sequence('measurement_batch', 'id'));
  17. -- Добавление измерений в пакет
  18. FOR k IN 1..10 LOOP
  19. INSERT INTO measurement_params (measurement_type_id, measurement_batch_id, height, temperature, pressure, wind_speed, wind_direction, bullet_speed)
  20. VALUES (
  21. 1, -- Тип измерения
  22. batch_id,
  23. random() * 1000, -- Высота
  24. (random() * 116 - 58)::NUMERIC, -- Температура (-58..58)
  25. (random() * 400 + 500)::NUMERIC, -- Давление (500..900)
  26. random() * 20, -- Скорость ветра
  27. (random() * 60)::INT, -- Направление ветра (0..59)
  28. random() * 1000 -- Скорость пули
  29. );
  30. END LOOP;
  31. END LOOP;
  32. END LOOP;
  33. END $$;