No âmbito do PostgreSQL 12, considere o comando a seguir. CREATE SEQUENCE TESTE Ao objeto TESTE, assim criado, aplicam-se as seguintes funções nativas:
- A)before, after;
Errada: before e after são palavras ligadas a gatilhos e ordenação, não funções nativas de sequence.
- B)commit, abort;
Errada: commit e abort dizem respeito a transações, não ao objeto SEQUENCE.
- C)currval, nextval;
Certa: currval e nextval são as funções nativas do PostgreSQL usadas para ler o valor corrente e obter o próximo valor de uma sequence.
- D)low, high;
Errada: low e high não são funções nativas vinculadas a sequence no PostgreSQL.
- E)next, last.
Errada: next e last não formam o par de funções nativas esperado para sequence no PostgreSQL.
Gabarito: C
No PostgreSQL, uma SEQUENCE e o famoso gerador de números sequenciais, muito usado para chaves automáticas e controle de incrementos. Quando voce executa CREATE SEQUENCE TESTE, voce cria um objeto próprio para produzir valores em ordem, sem precisar ficar inventando o número na mão a cada inserção. O par de funções nativas diretamente ligado a esse objeto é justamente o conjunto que consulta o valor atual da sequência e o próximo valor gerado por ela. A função nextval avança a sequência e devolve o próximo número, enquanto currval devolve o valor mais recente obtido naquela sessão para essa sequência. Por isso, a alternativa C está correta: são as funções clássicas associadas a sequences no PostgreSQL, algo muito cobrado em prova de banco relacional.