chore: sincroniza projeto para gitea
This commit is contained in:
43
scripts/limpar_duplicados_configuracoes.sql
Normal file
43
scripts/limpar_duplicados_configuracoes.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user