Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Desafio entregue, tenho uma dúvida e uma sugestão

Ao manter o script com a linha MATRICULA INT(5) AUTO_INCREMENT acusou o erro abaixo:

1 warning(s): 1681 Integer display width is deprecated and will be removed in a future release.

Porém acabei deixando sem o INT(5) e acabou não apresentando mais esse problema na hora de criar a tabela:

CREATE TABLE TABELA_DE_VENDEDORES(
    MATRICULA INT AUTO_INCREMENT,
    NOME VARCHAR(100),
    PERCENTUAL_COMISSAO DECIMAL(5,2) CHECK (PERCENTUAL_COMISSAO >= 0 AND PERCENTUAL_COMISSAO <= 100),
    PRIMARY KEY (MATRICULA)
);

O que acha? Tem uma alternativa que seria mais viável para entregar esse desafio?

Atenciosamente, Roberto Melo

2 respostas
solução!

Oi, Roberto! Tudo bem?

Quando escrevemos INT(5), o número 5 não limita o valor que o campo pode armazenar, mas apenas sugere ao MySQL quantos dígitos devem ser exibidos ao retornar os dados — chamamos isso de "largura de exibição". Contudo, conforme a mensagem que apareceu para você, o MySQL está planejando remover esse recurso, por isso está avisando que o uso de INT(5) está obsoleto.

Para a resolução desse exercício, temos diferentes possibilidades. A primeira delas é utilizar apenas INT, assim como você fez. No entanto, Roberto, a expressão INT indica que estamos trabalhando com números inteiros (passíveis de serem usados, por exemplo, em cálculos matemáticos).

O código da matrícula, por sua vez, não deve ser compreendido como um número inteiro, pois não faz sentido, matematicamente, usá-lo (como em somas, multiplicações, etc). Nesse sentido, o caminho mais recomendado é trabalhar com o tipo VARCHAR — que aceita tranquilamente limitações de campo e combinações distintas entre caracteres.

Além do mais, de acordo com a atividade, não precisamos trabalhar com AUTO_INCREMENT, então iremos removê-lo.

Após atualizar o seu script SQL, chegaremos no seguinte resultado:

CREATE TABLE TABELA_DE_VENDEDORES(
    MATRICULA VARCHAR(5),
    NOME VARCHAR(100),
    PERCENTUAL_COMISSAO DECIMAL(5,2) CHECK (PERCENTUAL_COMISSAO >= 0 AND PERCENTUAL_COMISSAO <= 100),
    PRIMARY KEY (MATRICULA)
);

Roberto, essa é apenas uma sugestão! Sinta-se livre para criar o seu banco de dados como preferir — lembrando sempre de organizar os demais códigos para se adequarem ao que você já criou.

Espero ter ajudado com a explicação! Qualquer dúvida, estarei por aqui.

Um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Andrieli. Tudo bem?

Maravilha. Excelente explicação!

Obrigado.