Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) INT(1) - Grava um dígito ou o fato de colocar INT(1) não b


mcrmcr2

Pergunta

Olá Amigos,

Não sei se estou postando no local correto, pois trata-se de uma dúvida em relação a bando de dados MySql.

Criei uma tabela onde existe um campo int(1). Fazendo assim, int(1), deveria grava apenas um dígito no campo, correto ?

Bom, se eu coloco 222222 ele grava. Se eu coloco 1, grava também. Ou seja, não está bloqueado para apenas um dígito.

Para bloquear o campo para gravar apenas um dígito, como que eu faço ?

Grato a todos e um ótimo final de semana.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
... Fazendo assim, int(1), deveria grava apenas um dígito no campo, correto ?

Oi, 'mcrmcr2'!

O MySQL, em tipos numéricos, não faz bloqueio de valores pelo tamanho informado entre parenteses.

Ele faz por definição do tipo numérico.

Veja o manual do MySQL no link a seguir. 6.2.1. Tipos Numéricos

Para bloquear o campo para gravar apenas um dígito, como que eu faço ?

Você pode usar, (O QUE EU NÃO RECOMENDO, pois poderá ter problemas com totalizadores, cálculos e outras operações matemáticas) os tipos NUMERIC e DECIMAL. Estes tipos eram aceitos até a versão 4.0. Na versade o MySQl converte estes tipos para caracteres, internamente. Neste caso será mais aconselhável usar o tipo CHAR(1).

Outra saída é controlar através de trigger. Se você usar esta opção (trigger) então poderá manter o campo como Tinyint.

Uma última opção será controlar através de sua linguagem de programação.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...