Questão de Banco de Dados — Consultas e Comandos em SQL — Quadrix 2024
- Código
- qa630727
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Cargo
- Tecno ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). O comando INSERT INTO Autores (Nome, Email, InstituicaoID) VALUES ('João Silva', '[email protected]', 1) não gera erro, pois a coluna AutorID foi definida como AUTO_INCREMENT PRIMARY KEY — o MySQL gera automaticamente o valor sequencial para essa coluna quando ela é omitida na lista de colunas do INSERT. A afirmação de que ocorreria erro por falta do código do autor está incorreta.
O AUTO_INCREMENT é um recurso específico do MySQL (e de outros SGBDs, como o PostgreSQL com SERIAL) que automatiza a geração de valores numéricos únicos para uma coluna, tipicamente a chave primária. Quando uma coluna é declarada com AUTO_INCREMENT, o banco de dados assume a responsabilidade de atribuir o próximo valor disponível (geralmente o maior valor existente + 1) sempre que um novo registro é inserido sem que um valor explícito seja fornecido para essa coluna.
Na prática, o comando INSERT do enunciado funciona perfeitamente: o MySQL atribuirá o valor 1 (ou o próximo valor da sequência) ao AutorID do novo registro. A omissão da coluna na lista de colunas do INSERT é justamente o que aciona o mecanismo de auto-geração. Se o usuário quisesse inserir um valor específico, ele poderia incluir AutorID na lista e fornecer o valor — mas isso é opcional.
É importante distinguir o comportamento do AUTO_INCREMENT de uma coluna PRIMARY KEY comum sem auto-numeração. Neste último caso, a omissão da chave primária no INSERT de fato geraria erro, pois o banco não saberia qual valor atribuir. Mas com AUTO_INCREMENT, a geração automática elimina essa necessidade. A pegadinha da banca está exatamente em confundir esses dois cenários: o candidato que não conhece o AUTO_INCREMENT pode achar que a chave primária precisa ser sempre informada manualmente.
Guarde a regra de ouro: coluna AUTO_INCREMENT não precisa ser informada no INSERT — o banco cuida dela. É esse critério que decide a questão.
A afirmação diz que ocorrerá erro porque o AutorID não foi informado. Isso é falso. A coluna AutorID foi declarada como AUTO_INCREMENT PRIMARY KEY na criação da tabela Autores. Quando o comando INSERT omite essa coluna, o MySQL gera automaticamente o próximo valor inteiro sequencial. Portanto, o comando é válido e será executado com sucesso, inserindo um novo autor com AutorID atribuído automaticamente.
Em questões sobre INSERT com AUTO_INCREMENT, verifique sempre se a coluna omitida é a chave primária com auto-numeração. Se for, a omissão é intencional e correta. A pegadinha clássica é afirmar que falta a chave primária, quando na verdade o AUTO_INCREMENT a supre automaticamente.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qa630727