Minha dúvida é, como eu faço uma trigger pra não permitir alteração numa tabela(pai), se a tabela filha teve um produto vendido.
Aqui o enunciado pra ficar mais claro:
Criar uma trigger para não permitir que ocorra a alteração do fabricante de cada
produto a partir do momento que ocorreu uma venda para esse determinado produto. Dessa forma,
produtos que já foram vendidos jamais poderão ter seu fabricante modificado.
Essas são as tables:
Aqui o que tentei, mas não foi:
CREATE OR REPLACE FUNCTION alter_fab() RETURNS TRIGGER
AS $alter_fab$
BEGIN
IF EXISTS(SELECT * from FABRICANTE INNER JOIN PRODUTO
ON(fabricante.i_fabricantes = produto.i_fabricantes)
INNER JOIN ITEM
ON(item.i_produtos = produto.i_produtos)
INNER JOIN VENDA
ON(venda.i_vendas = item.i_vendas)) THEN
RAISE EXCEPTION 'Fabricante não pode ser alterado, pois existem produtos vendidos para esse fabricante!';
ELSE
RETURN NEW;
END IF;
END;
$alter_fab$ LANGUAGE plpgsql;
PS: Foi feito para o postgres;
Agradeço desde já
