Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FCC 2022

Banco de DadosPostgreSQL
Código
fc065421
Banca
FCC
Órgão
TRT - 22ª Região (PI)
Ano
2022
Cargo
Técnico Judiciário - Tecnologia da Informação
Considere que um Técnico está trabalhando em um banco de dados PostgreSQL aberto e funcionando em condições ideais. O Técnico inseriu a seguinte sequência de comandos:DROP TABLE ..I.. TRTContatos;CREATE TABLE TRTContatos(codigo ..II.. PRIMARY KEY,orgao VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL);Para que uma eventual tabela TRTContatos anterior seja excluída e que o campo codigo seja preenchido automaticamente com números sequenciais a partir de 1, as lacunas I e II devem ser, correta e respectivamente, preenchidas com
  1. AALL ROWS − COUNT UP
  2. BIF EXISTS − SERIAL
  3. CIF EXISTS − SEQUENTIAL
  4. DALL RECORDS − COUNT UP
  5. EALL RECORDS − SERIAL
Revelar gabarito e comentário

GabaritoB — IF EXISTS − SERIAL

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

PostgreSQL: DROP TABLE IF EXISTS e SERIAL

Gabarito: letra B. Para excluir uma tabela apenas se ela existir e evitar erro, usa-se DROP TABLE IF EXISTS. Para gerar automaticamente números sequenciais a partir de 1 em uma coluna, o PostgreSQL oferece o tipo SERIAL, que cria uma sequência automática. A combinação correta é IF EXISTS na lacuna I e SERIAL na lacuna II.

A questão testa dois comandos muito comuns no dia a dia do PostgreSQL.

DROP TABLE
  • 1IF EXISTS
    • Evita erro se tabela não existe
  • 2Sem IF EXISTS
    • Erro se tabela não existe
  • 3Auto-incremento (PostgreSQL)
    • SERIAL
      • Gera sequência a partir de 1
    • BIGSERIAL
    • SMALLSERIAL
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

ALL ROWS não é uma cláusula válida para o comando DROP TABLE – não existe no SQL padrão nem no PostgreSQL. COUNT UP não é um tipo de dado; o correto é SERIAL.

Alternativa B — ✅ Correta ⟵ GABARITO

IF EXISTS é a cláusula que condiciona a exclusão à existência da tabela, evitando erro caso ela não exista. SERIAL é o tipo de dado que implementa auto-incremento no PostgreSQL, gerando uma sequência de inteiros a partir de 1.

Alternativa C — ❌ Incorreta

IF EXISTS está correto para a lacuna I, mas SEQUENTIAL não é um tipo de dado no PostgreSQL. O nome correto é SERIAL. Não confunda com SEQUENCE, que é um objeto separado.

Alternativa D — ❌ Incorreta

ALL RECORDS não existe para DROP TABLE; o comando correto é DROP TABLE IF EXISTS. COUNT UP não é um tipo de dado SQL.

Alternativa E — ❌ Incorreta

ALL RECORDS é inválido. Embora SERIAL esteja correto para a lacuna II, a lacuna I está errada.


PEGA ESSA DICA!

Decore a sintaxe: DROP TABLE IF EXISTS nome_tabela; e os tipos de auto-incremento do PostgreSQL: SERIAL, BIGSERIAL e SMALLSERIAL. Eles criam uma sequência associada à coluna.

Gabarito: letra B

Link permanente: /questoes/fc065421