50 lines
1.6 KiB
SQL
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;
|