Imagem de fundo

No PostGreSQL, a linguagem PL/pgSQL pode ser utilizada para...

Atenção:


Algumas das questões seguintes fazem referência a um banco de dados relacional intitulado BOOKS, cujas tabelas e respectivas instâncias são exibidas a seguir. Essas questões referem-se às instâncias mostradas.


AUTOR


AutorID

AutorNome

1

2

3

Arthur Conan Doyle

Agatha Christie

Edgar Allan Poe


LIVRARIA


LivrariaID

LivrariaNome

1

2

3

4

Cultural

Travessia

Amazonas

Kremlin


LIVRO


LivroID

AutorID

Titulo

NumLivrarias

1

1

O Cão dos Baskervilles

NULL

2

1

As Aventuras de Sherlock Holmes

2

3

2

Assassinato no Expresso do Oriente

2

4

2

O Mistério dos Sete Relógios

3

5

3

Assassinatos na Rua Morgue

NULL


OFERTA


LivrariaID

LivroID

Preco

1

1

1

1

1

2

2

2

3

3

1

2

3

4

5

1

2

4

3

4

32

28

45

38

23

56

54

43

35

38


A tabela Livro representa livros. Cada livro tem um autor, representado na tabela Autor. A tabela Oferta representa os livros que são ofertados pelas livrarias, estas representadas pela tabela Livraria. NULL significa um campo não preenchido.


AutorID, LivrariaID e LivroID, respectivamente, constituem as chaves primárias das tabelas Autor, Livraria e Livro.


LivrariaID e LivroID constituem a chave primária da tabela Oferta.

No PostGreSQL, a linguagem PL/pgSQL pode ser utilizada para definir procedures que são executadas como triggers, quando várias “special variables” são criadas, no escopo do bloco mais externo, e tornam-se disponíveis para uso no código da procedure.


Nesse contexto, analise as seguintes afirmativas sobre algumas dessas variáveis e o funcionamento de triggers no PostgreSQL:


I. A variável NEW contém um valor booleano que indica se o registro objeto do trigger está sendo incluído (true) ou não (false).

II. A variável NEW contém os campos de um registro que está sendo incluído (insert) ou alterado (update).

III. A variável TG_OP contém uma string que determina o nome da operação que desencadeou o trigger (insert, update, etc.).

IV. Na declaração de um trigger, as opções FOR EACH ROW e FOR EACH STATEMENT são equivalentes, tendo sido mantidas apenas para efeito de compatibilidade com versões anteriores.


Está correto somente o que se afirma em:


A

I e III;


B

I, II e III;


C

II e III;


D

II e IV;


E

III e IV.