Untitled
DO $$ DECLARE start_date DATE := '2024-01-09'; -- Для записей с какой даты будет подмена end_date DATE := '2024-01-11'; -- Для записей до какой даты будет подмена limit_count INT := 100; -- Сколько записей для временного диапазона будет использовано для подмены table_name TEXT; hall_id UUID := '0466b1b1-7467-447a-a60c-36e383f4641f'::UUID; --ID холла tables TEXT[] := ARRAY [ 'common_referrals_transaction', 'cpa_referrals_transaction', 'rev_share_referrals_transaction', 'rakeback_referrals_transaction' ]; -- Список таблиц для подмены 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 id DESC LIMIT $4 ) UPDATE %I SET created_at = ''2024-10-01''::date + ((RANDOM() * (''2024-10-31''::date - ''2024-10-01''::date)) || '' days'')::interval, updated_at = ''2024-10-01''::date + ((RANDOM() * (''2024-10-31''::date - ''2024-10-01''::date)) || '' days'')::interval WHERE id IN (SELECT id FROM cte)', table_name, table_name) USING hall_id, start_date, end_date, limit_count; END LOOP; END $$;
Leave a Comment