Em relação às possíveis mudanças que podem ser realizadas com instruções SQL, escolha a seguir a única alternativa correta:

Questão

Em relação às possíveis mudanças que podem ser realizadas com instruções SQL, escolha a seguir a única alternativa correta:

Alternativas

A) Para aumentar o tamanho de uma coluna do tipo chave primária, primeiro você realiza a alteração na tabela principal e posteriormente altera as tabelas que recebem o relacionamento (foreign keys).

B) É possível alterar uma coluna não obrigatória (null) para obrigatória (not null) sempre que necessário, independente se existirem dados na tabela ou não.

C) Para aumentar o tamanho de uma coluna do tipo chave primária, primeiro você realiza a alteração na tabela principal e automaticamente as outras tabelas que detêm o relacionamento como (foreign keys) serão modificadas automaticamente.

D) É possível alterar uma coluna não obrigatória (null) para obrigatória (not null), desde que a tabela esteja vazia ou caso tenha registros, existam valores na coluna que irá ser alterada (para todos os registros).

92%

E) Existem inúmeras restrições para alterar uma coluna obrigatória (not null) para não obrigatória (null).

Explicação

Para avaliar as alternativas, considere regras gerais de integridade ao alterar esquema (DDL) em SQL:

  1. Alterar coluna de NULL para NOT NULL
  • A mudança para NOT NULL só é permitida se nenhuma linha violar a nova restrição.
  • Ou seja:
    • se a tabela estiver vazia, não há violação; ou
    • se houver dados, todas as linhas devem ter valor não nulo nessa coluna (senão o comando falha). Isso corresponde exatamente ao que diz a alternativa D.
  1. Por que as demais estão erradas
  • A) Ao aumentar o tamanho de uma coluna que é PK e é referenciada por FK, em geral você não consegue simplesmente alterar primeiro a tabela “principal” se existirem FKs dependentes com tipos/tamanhos compatíveis que precisem acompanhar; normalmente é necessário tratar as constraints (dropar/recriar) e garantir compatibilidade. Não é uma regra “alterar principal e depois dependentes” como algo sempre possível/necessário dessa forma.
  • B) Errada porque não é independente de existirem dados: se houver qualquer NULL na coluna, não dá para impor NOT NULL sem antes corrigir os dados.
  • C) Errada porque alterações na PK não “propagam automaticamente” para colunas FK em outros tabelas na maioria dos SGBDs; você precisa garantir compatibilidade/alterar explicitamente (muitas vezes removendo e recriando a constraint).
  • E) Em geral, mudar de NOT NULL para NULL costuma ser uma alteração mais simples (menos restritiva), não “inúmeras restrições” como regra geral.

Portanto, a única alternativa correta é a D.

Alternativa correta: (D).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.