This commit is contained in:
2026-03-01 01:03:00 +03:00
parent 29504c5502
commit b8a5569ab9
9 changed files with 373 additions and 15 deletions
+19 -9
View File
@@ -1,25 +1,35 @@
-- Массивы имен и фамилий для генерации
DO $$
DECLARE
first_names TEXT[] := ARRAY['Aleksandr', 'Dmitriy', 'Maksim', 'Ivan', 'Artem', 'Mikhail', 'Daniil', 'Egor', 'Andrey', 'Nikita',
'Anna', 'Mariya', 'Elena', 'Olga', 'Ekaterina', 'Natalya', 'Tatyana', 'Irina', 'Yuliya', 'Svetlana'];
last_names TEXT[] := ARRAY['Ivanov', 'Petrov', 'Sidorov', 'Smirnov', 'Kuznetsov', 'Popov', 'Vasilev', 'Sokolov', 'Mikhaylov', 'Novikov',
'Fedorov', 'Morozov', 'Volkov', 'Alekseev', 'Lebedev', 'Semenov', 'Egorov', 'Pavlov', 'Kozlov', 'Stepanov'];
room_record RECORD;
floor_num INT;
floor_id INT;
room_num INT;
room_id INT;
residents_count INT;
i INT;
first_name TEXT;
last_name TEXT;
BEGIN
FOR room_record IN SELECT id FROM rooms LOOP
residents_count := 2 + floor(random() * 2)::INT;
FOR floor_num IN 2..5 LOOP
INSERT INTO floors (number) VALUES (floor_num) RETURNING id INTO floor_id;
FOR i IN 1..residents_count LOOP
first_name := first_names[1 + floor(random() * array_length(first_names, 1))::INT];
last_name := last_names[1 + floor(random() * array_length(last_names, 1))::INT];
FOR room_num IN 1..15 LOOP
INSERT INTO rooms (number, on_floor)
VALUES (floor_num * 100 + room_num, floor_id)
RETURNING id INTO room_id;
INSERT INTO residents (real_name, room, is_busy, active_hours, inactive_hours, created_at, updated_at)
VALUES (first_name || ' ' || last_name, room_record.id, false, 0, 0, NOW(), NOW());
residents_count := 2 + floor(random() * 2)::INT;
FOR i IN 1..residents_count LOOP
first_name := first_names[1 + floor(random() * array_length(first_names, 1))::INT];
last_name := last_names[1 + floor(random() * array_length(last_names, 1))::INT];
INSERT INTO residents (real_name, room, is_busy, active_hours, inactive_hours, created_at, updated_at)
VALUES (first_name || ' ' || last_name, room_id, false, 0, 0, NOW(), NOW());
END LOOP;
END LOOP;
END LOOP;
END $$;