Вы находитесь на странице: 1из 2

Instituto Federal de Educacao,Ciencia e Tecnologia de Roraima Diretoria de Graduacao Curso Superior de Tecnologia em Analise e Desenvolvimento de Sistemas Banco de Dados

II Prof Esp. Renner da Silva Sadeck Exercicio sobre Triggers 1. Considerando a relao abaixo: Funcionario( id serial not null, nome varchar(60) not null, salario int not null, primary key(id)); a) Crie um gatilho para verificar se o salrio de um funcionrio sendo inserido valor maior ou igual a zero (impedindo a insero quando o salrio for um valor negativo ou zero). 2. Considerando as relacoes abaixo: Vendedor( id serial not null, nome varchar(60) not null, salario int not null, primary key(id)); Contador( id serial not null, nome varchar(60) not null, salario int not null, primary key(id)); a) Crie um gatilho sobre a tabela vendedor para garantir que um vendedor no seja cadastrado se j existir um cadastro da mesma pessoa na tabela Contador . Aps a codificao do gatinho, um comando de insero na tabela vendedor dever ter efeito apenas se o vendedor sendo cadastrado no estiver na tabela contador. Caso contrrio, uma exceo dever ser gerada com a mensagem de erro Funcionrio j cadastrado como contador!.

3. Considerando a relao abaixo: Produtos( codigo serial not null, descricao varchar(60) not null, valor int not null, qtdestoque int , status int, primary key(codigo));

a) Crie uma funo prodEmFalta, que devolva o cdigo e a descrio de todos os produtos em falta.
b) Faa uma trigger para armazenar em uma tabela chamada Histrico_Precos (prd_codigo, data, preco_antigo, preco_novo, usuario_bd, usuario_sistema) as alteraes de preos ocorridas nos produtos cadastrados na tabela Produtos (codigo,descricao, qtdestoque, valor, status). Ateno, esse trigger somente dever ser disparado quando houver alterao no atributo valor da tabela produtos e, deve permitir as alteraes de preos de mais de um produto.

c) Faa uma trigger para que seja disparado na operao de excluso da tabela de produtos. Esse trigger no permitir que seja feita a excluso fsica, mas alterar o valor do atributo status para 4, de um ou mais produtos a serem excludos.

d) Faa uma trigger para armazenar em uma tabela chamada Histrico_Produtos_Excludos (codigo, qtd_estoque, valor) todos os produtos que foram excludos da tabela Produtos, mais a informao de qual usurio do sistema realizou a excluso e em qual data e hora. Ateno, essa trigger somente excluir os produtos se eles no tiverem quantidades em estoque (qtd_estoque). Caso isso acontea a tabela chamada TentativasLog (data, operao, codigo, usurio_bd) alimentada com os dados dos produtos que seriam excludos, ou seja, com os cdigo dos produtos. Alm disso, o atributo status desses produtos (que seriam excludos) tero seu valor atualizado para 0 (zero), que indica que um produto deve ser vendido rapidamente.