FC ConcursosFC Concursos

Questão FC372805

No PostgreSQL deseja-se fazer uma cópia dos nomes das colunas (sem os dados) de uma tabela chamada cliente para backup_cliente e, depois, inserir apenas os primeiros três registros

Linguagem SQL

FCC · 2022

No PostgreSQL deseja-se fazer uma cópia dos nomes das colunas (sem os dados) de uma tabela chamada cliente para backup_cliente e, depois, inserir apenas os primeiros três registros (linhas) da tabela cliente na tabela backup_cliente. Para realizar essa tarefa utilizam-se os comandos

  1. CREATE TABLE backup_cliente AS SELECT * FROM cliente LIMIT 0;

    INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;

  2. CREATE TABLE backup_cliente AS SELECT * FROM cliente;

    INSERT INTO backup_cliente SELECT * FROM cliente WHERE COUNT(*)<=3;

  3. TRUNCATE TABLE cliente TO backup_cliente;

    INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;

  4. CREATE TABLE backup_cliente AS SELECT * FROM cliente;

    INSERT INTO backup_cliente SELECT LIMIT 3 FROM cliente;

  5. BACKUP TABLE cliente to backup_cliente;

    INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

Os comandos indicados realizam em duas etapas a cópia da estrutura e depois a transferência de três registros. Primeiro usamos CREATE TABLE ... AS SELECT com LIMIT 0 para criar backup_cliente com as mesmas colunas de cliente sem copiar linhas:
CREATE TABLE backup_cliente AS SELECT * FROM cliente LIMIT 0;

Em seguida, inserimos os três primeiros registros com um INSERT INTO ... SELECT:
INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;

Observações importantes: o CREATE TABLE AS replica nomes e tipos de colunas, mas não replica constraints, índices ou valores de sequência; adapte se precisar desses objetos. Além disso, o resultado de LIMIT 3 é indeterminado sem usar ORDER BY, então inclua ORDER BY se quiser um critério de seleção estável.

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

Continue aprendendo