SóProvas


ID
2616460
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item subsequente, a respeito do Postgres 9.6.


Ao se criar uma trigger, a variável especial TG_OP permite identificar que operação está sendo executada, por exemplo, DELETE, UPDATE, INSERT ou TRUNCATE.

Alternativas
Comentários
  • Quando uma função que retorna o tipo trigger é executada, o PostgreSQL cria algumas variáveis especiais na memória. Essas variáveis podem ser usadas no corpo das nossas funções. Na função acima estamos usando uma dessas variáveis, a TG_OP que retorna a operação que foi realizada (insert, update ou delete).

     

    https://www.devmedia.com.br/trigger-no-postgresql/7032

  • TG_NAME
        Nome do tipo de dados; variável que contém o nome do gatilho disparado.

    TG_WHEN
        Texto do tipo de dados; uma cadeia de ANTES, DEPOIS ou INSÉDIO DE, dependendo da definição do acionador.

    TG_LEVEL
        Texto do tipo de dados; uma string de ROW ou STATEMENT, dependendo da definição do trigger.

    TG_OP
        Texto do tipo de dados; uma sequência de instruções INSERT, UPDATE, DELETE ou TRUNCATE para qual operação o acionador foi disparado.

    TG_RELID
        Tipo de dados oid; o ID do objeto da tabela que causou a invocação do acionador.

    TG_RELNAME
        Nome do tipo de dados; o nome da tabela que causou a invocação do acionador. Isso agora está obsoleto e pode desaparecer em uma versão futura. Use TG_TABLE_NAME em seu lugar.

    TG_TABLE_NAME
        Nome do tipo de dados; o nome da tabela que causou a invocação do acionador.

    TG_TABLE_SCHEMA
        Nome do tipo de dados; o nome do esquema da tabela que causou a invocação do acionador.

    TG_NARGS
        Tipo de dados inteiro; o número de argumentos fornecidos ao procedimento de acionamento na instrução CREATE TRIGGER.

    TG_ARGV []
        Matriz de tipos de dados de texto; os argumentos da instrução CREATE TRIGGER. O índice conta a partir de 0. Índices inválidos (menor que 0 ou maior que ou igual a tg_nargs) resultam em um valor nulo.

     

    https://www.postgresql.org/docs/9.6/static/plpgsql-trigger.html

  • De fato, TG_OP é uma variável do tipo texto que pode ser preenchida com os valores INSERT, UPDATE, DELETE ou TRUNCATE que identificam quais operações irão disparar o TRIGGER. Vejamos alguns exemplos:

    CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp

        FOR EACH ROW EXECUTE PROCEDURE emp_stamp();

    CREATE TRIGGER emp_audit

    AFTER INSERT OR UPDATE OR DELETE ON emp

        FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();

     

    https://www.estrategiaconcursos.com.br/blog/prova-da-semana-comentario-da-prova-do-stm-analista-de-sistemas-banco-de-dados-bi-e-bpm/

  • Nem que trabalha com isso, sabe essas variáveis de cabeça...