Questão de Banco de Dados — SQL — Quadrix 2024
- Código
- qg354213
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação

- 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 gerará erro pela ausência do AutorID, pois a coluna foi definida como AUTO_INCREMENT PRIMARY KEY, o que faz o MySQL gerar automaticamente o valor da chave primária quando ela é omitida na lista de colunas do INSERT. A afirmação do enunciado está incorreta.
A questão testa um dos comportamentos mais fundamentais do MySQL: o funcionamento da propriedade AUTO_INCREMENT. Quando uma coluna é declarada como AUTO_INCREMENT, o SGBD assume a responsabilidade de gerar um valor sequencial único para ela a cada nova inserção, desde que essa coluna não seja explicitamente informada no comando INSERT. É exatamente isso que ocorre no comando apresentado: a lista de colunas (Nome, Email, InstituicaoID) não inclui AutorID, então o MySQL atribui automaticamente o próximo valor da sequência (1, 2, 3, ...) a essa coluna. O comando é, portanto, válido e executará sem erros.
Essa é uma distinção crucial que a banca explora: a diferença entre uma coluna que é chave primária e uma que é chave primária com AUTO_INCREMENT. Uma chave primária comum (sem AUTO_INCREMENT) exigiria que o valor fosse informado no INSERT, pois não há como o banco saber qual valor usar. Já a coluna com AUTO_INCREMENT tem essa obrigação transferida para o SGBD. No MySQL, a sintaxe INT AUTO_INCREMENT PRIMARY KEY é a forma mais comum de declarar uma chave substituta (surrogate key), e a omissão dessa coluna no INSERT é a prática padrão e recomendada.
Vale notar que o comando também não viola a restrição de chave estrangeira FOREIGN KEY (InstituicaoID) REFERENCES Instituicoes(InstituicaoID), pois o valor 1 é informado para InstituicaoID, e a inserção só falharia se não existisse uma instituição com InstituicaoID = 1 na tabela Instituicoes. Mas isso não é o que a questão afirma — o erro apontado é especificamente sobre a ausência do AutorID, o que não ocorre.
A pegadinha aqui é clássica: o candidato que não domina o conceito de AUTO_INCREMENT pode achar que toda chave primária precisa ser preenchida manualmente. A banca explora exatamente essa confusão entre "chave primária" e "chave primária auto-incrementada".
A banca tenta fazer você acreditar que a omissão do AutorID causa erro, explorando a confusão entre uma chave primária comum e uma com AUTO_INCREMENT. A chave primária comum exige valor explícito; a AUTO_INCREMENT gera o valor automaticamente. No comando dado, o AutorID é AUTO_INCREMENT, então a omissão é perfeitamente válida — o MySQL preenche com o próximo número da sequência. Fique atento: se a coluna tiver AUTO_INCREMENT, omiti-la no INSERT é o comportamento correto e esperado.
A alternativa afirma que o comando gerará erro porque o AutorID não foi informado. Isso é falso. A coluna AutorID foi definida como INT AUTO_INCREMENT PRIMARY KEY, e o MySQL gera automaticamente o valor da chave primária quando ela é omitida na lista de colunas do INSERT. O comando é válido e será executado com sucesso, atribuindo o próximo valor sequencial ao AutorID do novo registro.
A alternativa está correta ao afirmar que o item é errado. O comando INSERT não gerará erro pela ausência do AutorID, pois a coluna é AUTO_INCREMENT. O MySQL preenche automaticamente o valor da chave primária, tornando a inserção válida. A afirmação do enunciado, portanto, é incorreta.
Gabarito: letra E — o item está ERRADO, pois a coluna AutorID é AUTO_INCREMENT e o MySQL gera o valor automaticamente quando ela é omitida no INSERT.
Link permanente: /questoes/qg354213