xtablo-source/supabase/migrations_backup/20_short_user_id.sql

26 lines
849 B
MySQL
Raw Normal View History

2025-09-29 19:38:20 +00:00
-- Add short_user_id column to profiles table
ALTER TABLE profiles ADD COLUMN short_user_id TEXT;
-- Update existing records with the first 6 characters of their id
UPDATE profiles SET short_user_id = LEFT(id::TEXT, 6);
-- Make the column NOT NULL after populating existing records
ALTER TABLE profiles ALTER COLUMN short_user_id SET NOT NULL;
-- Create an index on short_user_id for better query performance
CREATE INDEX idx_profiles_short_user_id ON profiles(short_user_id);
-- Add a trigger to automatically populate short_user_id for new records
CREATE OR REPLACE FUNCTION set_short_user_id()
RETURNS TRIGGER AS $$
BEGIN
NEW.short_user_id = LEFT(NEW.id::TEXT, 6);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trigger_set_short_user_id
BEFORE INSERT ON profiles
FOR EACH ROW
EXECUTE FUNCTION set_short_user_id();