Questão FC373008
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 .
Sistema de Gerenciamento de Banco de Dados (SGBD)
FCC · 2022
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
- ALL ROWS − COUNT UP
- IF EXISTS − SERIAL
- IF EXISTS − SEQUENTIAL
- ALL RECORDS − COUNT UP
- ALL RECORDS − SERIAL
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A alternativa correta preenche as lacunas com IF EXISTS e SERIAL.
O fragmento IF EXISTS no comando DROP TABLE evita erro quando a tabela não existe: o PostgreSQL simplesmente ignora a operação em vez de retornar exceção. Sintaxe usual: DROP TABLE IF EXISTS table_name [CASCADE | RESTRICT], onde CASCADE remove objetos dependentes e RESTRICT impede a remoção se houver dependências.
Já o pseudotipo SERIAL cria automaticamente uma sequence e define como padrão da coluna a função nextval dessa sequence, promovendo preenchimento incremental automático dos registros.
Ao declarar codigo SERIAL PRIMARY KEY, o PostgreSQL gera a sequence, aplica NOT NULL e vincula a sequence à coluna; o primeiro valor padrão é 1, garantindo numeração sequencial crescente a partir de 1.
Conteúdo do catálogo FC Concursos · Atualizado em