Re_Backend/scripts/fix_activity_usernames.sql

44 lines
1.1 KiB
SQL

-- Script to fix NULL user_name values in activities table
-- This will populate user_name from the users table based on user_id
-- First, let's see how many records have NULL user_name
SELECT COUNT(*) as null_username_count
FROM activities
WHERE user_name IS NULL AND user_id IS NOT NULL;
-- Update activities with user names from users table
UPDATE activities a
SET user_name = u.display_name
FROM users u
WHERE a.user_id = u.user_id
AND a.user_name IS NULL
AND u.display_name IS NOT NULL;
-- For users without display_name, use email
UPDATE activities a
SET user_name = u.email
FROM users u
WHERE a.user_id = u.user_id
AND a.user_name IS NULL
AND u.email IS NOT NULL;
-- Verify the update
SELECT
COUNT(*) as total_activities,
COUNT(CASE WHEN user_name IS NULL THEN 1 END) as null_usernames,
COUNT(CASE WHEN user_name IS NOT NULL THEN 1 END) as populated_usernames
FROM activities;
-- Show sample of fixed records
SELECT
activity_id,
user_id,
user_name,
activity_type,
activity_description,
created_at
FROM activities
ORDER BY created_at DESC
LIMIT 10;