INSERT com várias linhas
Insira uma ou várias linhas com uma única instrução e use INSERT ... SELECT para copiar dados entre tabelas.
INSERT com várias linhas é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
INSERT de uma única linha
A forma mais simples informa as colunas e fornece os valores:
INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams');INSERT de várias linhas
Insira muitas linhas em uma única instrução. É mais rápido do que várias idas e voltas:
INSERT INTO users (email, full_name) VALUES
('alice@example.com', 'Alice Adams'),
('bob@example.com', 'Bob Brown'),
('carol@example.com', 'Carol Chen');Por que várias linhas são mais rápidas
Menos viagens de ida e volta ao banco de dados, menos ciclos de análise e planejamento, uma única descarga do WAL. Para inserções em massa de centenas de linhas, vários VALUES são de 5 a 10 vezes mais rápidos do que inserir uma linha por vez.
Valores DEFAULT
Omita uma coluna para usar o valor DEFAULT (ou NULL):
INSERT INTO orders (user_id, total)
VALUES (1, 99.50);
-- id, created_at, status filled by DEFAULTsDEFAULT explícito
Ou use a palavra-chave DEFAULT:
INSERT INTO orders (id, user_id, total, status)
VALUES (DEFAULT, 1, 99.50, DEFAULT);RETURNING
Obtenha as colunas da linha ou das linhas inseridas sem uma segunda consulta (PostgreSQL):
INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams')
RETURNING id, created_at;INSERT … SELECT
Copie ou transforme linhas de outra tabela:
INSERT INTO archive_orders (id, user_id, total)
SELECT id, user_id, total
FROM orders
WHERE created_at < NOW() - INTERVAL '5 years';Carregamento em massa com COPY
Para dezenas de milhares de linhas ou mais, use o comando COPY — de longe, o caminho mais rápido:
COPY users (email, full_name) FROM '/tmp/users.csv' (FORMAT csv, HEADER true);
-- Or from STDIN in a client:
COPY users (email, full_name) FROM STDIN;
alice@example.com\tAlice
bob@example.com\tBob
\.Evite inserir em transações grandes sem motivo
Uma transação = um bloco atômico. Se uma importação de um milhão de linhas falhar pela metade, tudo será revertido. Às vezes é isso que você quer; às vezes é melhor dividir em lotes de 10 mil linhas.
Dicas de desempenho do INSERT
Para inserções grandes:
- Remova os índices secundários, faça a inserção e recrie-os
- Desative gatilhos e verificações de FK, se for seguro
- Use COPY sempre que possível
- Ajuste
maintenance_work_mempara recriar índices
Prévia do tratamento de conflitos
Para inserir "se for novo; caso contrário, atualizar", use INSERT ... ON CONFLICT — isso será abordado na próxima lição.
Recapitulação
INSERT é simples; vários VALUES e INSERT … SELECT abrangem os casos do dia a dia. RETURNING evita viagens extras ao banco de dados. Para operações em massa, use COPY.
Verificação rápida
Qual é a maneira mais rápida de carregar 100.000 linhas de um arquivo CSV no PostgreSQL?
Perguntas Frequentes
A aula “INSERT com várias linhas” é grátis?
Sim — o texto completo de “INSERT com várias linhas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “INSERT com várias linhas”?
Insira uma ou várias linhas com uma única instrução e use INSERT ... SELECT para copiar dados entre tabelas. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “INSERT com várias linhas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- INSERT com várias linhas
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- UPDATE com FROM e atualizações no estilo JOIN
- DELETE com USING e padrões seguros