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
- CREATE TABLE backup_cliente AS SELECT * FROM cliente LIMIT 0;
INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;
- CREATE TABLE backup_cliente AS SELECT * FROM cliente;
INSERT INTO backup_cliente SELECT * FROM cliente WHERE COUNT(*)<=3;
- TRUNCATE TABLE cliente TO backup_cliente;
INSERT INTO backup_cliente SELECT * FROM cliente LIMIT 3;
- CREATE TABLE backup_cliente AS SELECT * FROM cliente;
INSERT INTO backup_cliente SELECT LIMIT 3 FROM cliente;
- 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