2015-02-19 21:58 GMT-02:00 Paulo Afonso Pereira < [email protected]>:
> CREATE TABLE pedidos ( > > idpedido serial PRIMARY KEY, > > idcliente integer CONSTRAINT fk_pedido_cliente REFERENCES clientes > (idcliente), > > datapedido date default now(), > > situacao varchar(1) > > ); > > > > CREATE TABLE peditens ( > > idpedido integer CONSTRAINT fk_pedido REFERENCES pedidos (idpedido) ON > DELETE CASCADE, > > idproduto integer CONSTRAINT fk_produto REFERENCES produtos (idproduto), > > qtde_item integer default 0, > > CONSTRAINT pk_peditens PRIMARY KEY (idpedido,idproduto) > > ); > > > > CREATE TABLE pedpecas ( > > idpedido integer CONSTRAINT fk_pedido REFERENCES pedidos (idpedido) ON > DELETE CASCADE, > > idproduto integer CONSTRAINT fk_produto REFERENCES peditens > (idpedido,idproduto) ON DELETE CASCADE, (**AQUI**) > > idpecas integer CONSTRAINT fk_pecas REFERENCES pecas (idpecas), > > qtde_pecas integer default 0, > > CONSTRAINT pk_pedpecas PRIMARY KEY (idpedido,idproduto,idpecas) > > ); > > > > Se excluir um pedido da tabela PAI, todos são excluído nos filhos, até > aqui tudo OK. > > Se for excluído um produto da tabela ITENS, é possível fazer com que > exclua apenas este produto em questão da tabela PEÇAS??? > Pra mim parece que você já resolveu seu problema. Você já tem a FK `fk_produto` de `pedpecas` para a PK de `peditens`, e marcada com `ON DELETE CASCADE`, logo ao excluir um registro de `peditens` que tenha registros relacionados em `pedpecas`, os últimos já serão excluídos. Não era isso que você queria? Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
