Untitled
DO $$ DECLARE hall_id UUID := '06e1e862-dbae-4a99-9fea-6b8f682ad572'::UUID; --ID холла start_date DATE := '2024-07-30'; -- Для записей с какой даты будет подмена end_date DATE := '2024-10-01'; -- Для записей до какой даты будет подмена new_start_date DATE := '2024-10-22'; -- Для записей до какой даты будет подмена new_end_date DATE := '2025-01-22'; -- Для записей до какой даты будет подмена limit_count INT := 500; -- Сколько записей для временного диапазона будет использовано для подмены table_name TEXT; tables TEXT[] := ARRAY [ 'referral_player', 'referral_player_data' ]; -- Список таблиц для подмены BEGIN FOREACH table_name IN ARRAY tables LOOP EXECUTE format('WITH cte AS ( SELECT id FROM %I WHERE hall_id = $1 AND created_at >= $2 AND created_at <= $3 ORDER BY created_at DESC LIMIT $6 ) UPDATE %I SET created_at = $4::date + ((RANDOM() * ($5::date - $4::date)) || '' days'')::interval, updated_at = $4::date + ((RANDOM() * ($5::date - $4::date)) || '' days'')::interval WHERE id IN (SELECT id FROM cte)', table_name, table_name) USING hall_id, start_date, end_date, new_start_date, new_end_date, limit_count; END LOOP; END $$;
Leave a Comment