FC ConcursosFC Concursos

Questão FC373007

Considere que um Analista está trabalhando em um banco de dados PostgreSQL aberto e funcionando em condições ideais. O Analista inseriu a seguinte sequência de comandos: DROP TABLE

Sistema de Gerenciamento de Banco de Dados (SGBD)

FCC · 2022

Considere que um Analista está trabalhando em um banco de dados PostgreSQL aberto e funcionando em condições ideais. O Analista inseriu a seguinte sequência de comandos:

 

DROP TABLE ..I.. TRTContatos;
CREATE TABLE TRTContatos (
       cod serial PRIMARY KEY,
       orgao VARCHAR(255) NOT NULL,
       email VARCHAR(255) NOT NULL,
       descricao VARCHAR(255)
);


INSERT INTO
     TRTContatos (orgao, email)
VALUES
       ('Ouvidoria','ouvidoria@trt22.jus.br:'),
       ('Escola Judicial','ejud@trt22.jus.br'),
        ('Corregedoria','secor@trt22.jus.br')
..II.. ;

 

É correto afirmar que

  1. haverá erro, pois não é possível fazer inserção de múltiplas linhas em tabelas do PostgreSQL.
  2. haverá erro devido ao fato de as 3 linhas a serem inseridas na tabela TRTContatos não terem os 4 campos informados em CREATE TABLE.
  3. I deve ser preenchido com IF EXISTS e II deve ser preenchido com RETURNING * para que as linhas inseridas sejam apresentadas.
  4. I deve ser preenchido com ALL ROWS e II deve ficar sem nenhum preenchimento.
  5. faltou um _ entre cod e serial, pois o certo seria cod_serial PRIMARY KEY.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

IF EXISTS em DROP TABLE evita erro quando a tabela já não existe: DROP TABLE IF EXISTS TRTContatos; assim o comando falha silenciosamente em vez de abortar por “tabela inexistente”.

RETURNING * após o INSERT solicita ao PostgreSQL que devolva as linhas recém-inseridas. Isso é útil para visualizar todos os campos inseridos, inclusive os valores gerados pelo banco.

O campo serial gera automaticamente o valor da coluna cod; ao usar RETURNING * você obtém esses códigos atribuídos no momento da inserção, sem precisar fazer uma consulta adicional.

Portanto, preencher I com IF EXISTS e II com RETURNING * permite executar os comandos sem erro e apresentar as linhas inseridas com seus valores completos.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo