Untitled
unknown
sql
a year ago
1.9 kB
17
Indexable
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
$$;Editor is loading...
Leave a Comment