Files
App-Estoque-LiberiKids/sql/fix-produtos-constraints.sql
2025-11-29 21:31:52 -03:00

50 lines
1.6 KiB
SQL

-- =============================================
-- CORRIGIR CONSTRAINTS DA TABELA PRODUTOS
-- =============================================
-- Verificar constraints existentes
SELECT
conname as constraint_name,
pg_get_constraintdef(oid) as constraint_definition
FROM pg_constraint
WHERE conrelid = 'produtos'::regclass
AND contype = 'c';
-- Remover constraints problemáticas se existirem
DO $$
BEGIN
-- Remover constraint de gênero se existir
IF EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'produtos_genero_check') THEN
ALTER TABLE produtos DROP CONSTRAINT produtos_genero_check;
END IF;
-- Remover constraint de estação se existir
IF EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'produtos_estacao_check') THEN
ALTER TABLE produtos DROP CONSTRAINT produtos_estacao_check;
END IF;
END $$;
-- Adicionar constraints mais flexíveis
ALTER TABLE produtos
ADD CONSTRAINT produtos_genero_check
CHECK (genero IN ('Menino', 'Menina', 'Unissex', 'Bebê'));
ALTER TABLE produtos
ADD CONSTRAINT produtos_estacao_check
CHECK (estacao IN ('Verão', 'Inverno', 'Outono', 'Primavera', 'Ano Todo'));
-- Verificar se a coluna descrição existe
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
WHERE table_name = 'produtos' AND column_name = 'descricao') THEN
ALTER TABLE produtos ADD COLUMN descricao TEXT;
END IF;
END $$;
-- Verificar estrutura final
SELECT column_name, data_type, is_nullable
FROM information_schema.columns
WHERE table_name = 'produtos'
ORDER BY ordinal_position;