supabase signUp() 메서드로 회원가입 시 users 테이블에 자동으로 레코드 생성하기
CREATE OR REPLACE FUNCTION public.handle_new_user_custom()
RETURNS TRIGGER AS $$
DECLARE
new_nickname TEXT;
BEGIN
-- 기본 닉네임 생성
new_nickname := 'user_' || substring(md5(random()::text), 1, 8);
-- nickname이 이미 존재하는지 검사
WHILE EXISTS (SELECT 1 FROM public.buddies WHERE buddy_nickname = new_nickname) LOOP
-- 중복 발생 시 다른 유니크한 닉네임 생성
new_nickname := 'user_' || substring(md5(random()::text), 1, 8);
END LOOP;
INSERT INTO public.buddies (buddy_id, buddy_email, buddy_nickname, buddy_profile_pic)
VALUES (
NEW.id,
NEW.email,
new_nickname,
CASE
WHEN NEW.raw_user_meta_data->>'avatar_url' IS NOT NULL
THEN NEW.raw_user_meta_data->>'avatar_url'
ELSE NULL
END
);
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
-- 새로운 트리거 생성
CREATE TRIGGER on_auth_user_created_custom
AFTER INSERT ON auth.users
FOR EACH ROW
EXECUTE FUNCTION public.handle_new_user_custom();
그냥 복붙하지 마시고 테이블 이름과 컬럼 이름을 잘 보고 사용하시기 바람. 본인 프로젝트에 실제로 쓰인 코드임.
'Programing > Server' 카테고리의 다른 글
MongoDB란? (vs Supabase와의 비교) (0) | 2025.02.11 |
---|---|
Node.js로 구축한 백엔드 서버를 Supabase에 연결시키기 (0) | 2024.08.27 |
supabase DB Tables postgreSQL로 한 번에 생성하기 (0) | 2024.07.21 |
Supabase 타입 추론 스크립트 추가하기 (0) | 2024.07.09 |
Supabase SQL 쿼리로 민감한 데이터 한방에 별표 처리하기 (0) | 2024.06.29 |
댓글