-- Limpar registros duplicados na tabela configuracoes antes de adicionar constraint UNIQUE -- 1. Ver quais registros estão duplicados SELECT tipo, COUNT(*) as total FROM public.configuracoes GROUP BY tipo HAVING COUNT(*) > 1; -- 2. Remover duplicados, mantendo apenas o mais recente de cada tipo DELETE FROM public.configuracoes WHERE id IN ( SELECT id FROM ( SELECT id, tipo, ROW_NUMBER() OVER (PARTITION BY tipo ORDER BY updated_at DESC, created_at DESC) as rn FROM public.configuracoes ) t WHERE rn > 1 ); -- 3. Verificar se ainda existem duplicados (deve retornar vazio) SELECT tipo, COUNT(*) as total FROM public.configuracoes GROUP BY tipo HAVING COUNT(*) > 1; -- 4. Agora adicionar a constraint UNIQUE DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_constraint WHERE conname = 'configuracoes_tipo_key' AND conrelid = 'public.configuracoes'::regclass ) THEN ALTER TABLE public.configuracoes ADD CONSTRAINT configuracoes_tipo_key UNIQUE (tipo); RAISE NOTICE 'Constraint UNIQUE adicionada com sucesso!'; ELSE RAISE NOTICE 'Constraint UNIQUE já existe.'; END IF; END $$; -- 5. Verificar o resultado final SELECT * FROM public.configuracoes ORDER BY tipo;