mcrmcr2 Postado Janeiro 29, 2010 Denunciar Share Postado Janeiro 29, 2010 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 More sharing options...
0 Denis Courcy Postado Fevereiro 2, 2010 Denunciar Share Postado Fevereiro 2, 2010 ... 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éricosPara 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 More sharing options...
0 mcrmcr2 Postado Fevereiro 3, 2010 Autor Denunciar Share Postado Fevereiro 3, 2010 Muito Grato amigo.Esclareu perfeitamente.Abraços e fique com Deus Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mcrmcr2
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