« Léo » 0 Denunciar post Postado Abril 4, 2008 Fala galera, Criei uma coluna INT (15) para armazenar CPF (sem pontuações). O problema é que qd insiro o CPF da pau. Qd insiro um registro com 11 nºs é retornado o erro: Registro(s) afetado(s): 0 Warning: #1264 Out of range value adjusted for column 'BD_cpf' at row 1 UPDATE `mbd3`.`clientes_pf` SET `BD_cpf` = '12345678987' WHERE `clientes_pf`.`BD_id` =1 LIMIT 1; E fica armazenado um outro numero: 2147483647 Alguem sabe o que pode estar havendo? Grato Compartilhar este post Link para o post Compartilhar em outros sites
LHAlmeida 0 Denunciar post Postado Abril 4, 2008 Fala galera, Criei uma coluna INT (15) para armazenar CPF (sem pontuações). O problema é que qd insiro o CPF da pau. Qd insiro um registro com 11 nºs é retornado o erro: Registro(s) afetado(s): 0 Warning: #1264 Out of range value adjusted for column 'BD_cpf' at row 1 UPDATE `mbd3`.`clientes_pf` SET `BD_cpf` = '12345678987' WHERE `clientes_pf`.`BD_id` =1 LIMIT 1; E fica armazenado um outro numero: 2147483647 Alguem sabe o que pode estar havendo? Grato o tamanho do int de 15 nao quer dizer q ele tem 15 posicoes, não me lembro exatamente, mas acredito q seja em bytes, mude o tipo do seu campo de int(15) para char(11)... aih você tera as 11 posicoes que precisa pra armazenar um cpf sem formatacao, inclusive serao armazenados os zeros a esquerda do numero abraço Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Abril 5, 2008 da um "describe tabela" e posta o resultado aki... quanto ao conselho do amigo peço q ignore ja que armazer numero como varchar pq ta dando erro eh igual aquela historia "o corno e o sofa" O corno chegou em casa e pegou a mulher f****** com o vizinho em cima do sofa, mto puto da vida ele disse: nunca mais minha mulher vai me trair com o vizinho no sofa, entao pegou e jogou o sofa fora. O resultado eh q agora o corno ve televisao sentado no chao em compensaçao a mulher dele nao trai mais ele naquele sofa especificamente, ta traindo em outros lugares Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Abril 6, 2008 hueauhae adorei a historinha giesta O int(15) é em posições mesmo, tanto que tinyint é 3 (0 a 255) unsigned, e int(4) signed (-127 a 127). CPF tem sempre 11 dígitos, então vai de char(11) mesmo. Mas se você quiser colocar como número ainda, taca como BIGINT, são números com 19 dígitos, o 'famoso' 64 bits, e os 19 dígitos é signed ainda, se colocar como unsigned, vai pra 20. http://dev.mysql.com/doc/refman/5.0/en/num...e-overview.html Edit: Opa, e agora que eu percebi, você tá tratando o número como texto, colocando o número entre ''. Não sei se tem a ver, mas não é recomendado. Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Abril 7, 2008 da um "describe tabela" e posta o resultado aki... quanto ao conselho do amigo peço q ignore ja que armazer numero como varchar pq ta dando erro eh igual aquela historia "o corno e o sofa" O corno chegou em casa e pegou a mulher f****** com o vizinho em cima do sofa, mto puto da vida ele disse: nunca mais minha mulher vai me trair com o vizinho no sofa, entao pegou e jogou o sofa fora. O resultado eh q agora o corno ve televisao sentado no chao em compensaçao a mulher dele nao trai mais ele naquele sofa especificamente, ta traindo em outros lugares giesta, o resultado do campo é: Field - BD_cpf Type - int(15) Null - NO Key - Default - NULL Extra - Quanto às outras dicas: Eu havia posto int(11), visto que nao insiro a formatação e são apenas numeros. Usar char para um campo de inteiros não seria errado? Abs Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Abril 9, 2008 UPDATE `mbd3`.`clientes_pf` SET `BD_cpf` = 12345678987 WHERE `clientes_pf`.`BD_id` =1 LIMIT 1; O seu campo de int é "signed". O número máximo que você vai conseguir colocar ali é 2147483647 (10 dígitos), o que já te impossibilita de colocar 12345678987 (11 dígitos) Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Abril 10, 2008 UPDATE `mbd3`.`clientes_pf` SET `BD_cpf` = 12345678987 WHERE `clientes_pf`.`BD_id` =1 LIMIT 1; O seu campo de int é "signed". O número máximo que você vai conseguir colocar ali é 2147483647 (10 dígitos), o que já te impossibilita de colocar 12345678987 (11 dígitos) Olá Paulo, COmo resolvo isso entao? no phpMyAdmin fui no campo BD_cpf e alterei "Atributos" para "UNSIGNED" e nao resolveu... Grato, abs! Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Abril 10, 2008 hueauhae adorei a historinha giesta O int(15) é em posições mesmo, tanto que tinyint é 3 (0 a 255) unsigned, e int(4) signed (-127 a 127). CPF tem sempre 11 dígitos, então vai de char(11) mesmo. Mas se você quiser colocar como número ainda, taca como BIGINT, são números com 19 dígitos, o 'famoso' 64 bits, e os 19 dígitos é signed ainda, se colocar como unsigned, vai pra 20. http://dev.mysql.com/doc/refman/5.0/en/num...e-overview.html Edit: Opa, e agora que eu percebi, você tá tratando o número como texto, colocando o número entre ''. Não sei se tem a ver, mas não é recomendado. Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Abril 11, 2008 Desculpa mas em q você ta programando? VB? Compartilhar este post Link para o post Compartilhar em outros sites
« Léo » 0 Denunciar post Postado Abril 11, 2008 hueauhae adorei a historinha giesta O int(15) é em posições mesmo, tanto que tinyint é 3 (0 a 255) unsigned, e int(4) signed (-127 a 127). CPF tem sempre 11 dígitos, então vai de char(11) mesmo. Mas se você quiser colocar como número ainda, taca como BIGINT, são números com 19 dígitos, o 'famoso' 64 bits, e os 19 dígitos é signed ainda, se colocar como unsigned, vai pra 20. http://dev.mysql.com/doc/refman/5.0/en/num...e-overview.html Edit: Opa, e agora que eu percebi, você tá tratando o número como texto, colocando o número entre ''. Não sei se tem a ver, mas não é recomendado. Opa! Vlw paulo! Desculpa a desatenção. Desculpa mas em q você ta programando? VB?Em php! abs Compartilhar este post Link para o post Compartilhar em outros sites
Alex Camargo 0 Denunciar post Postado Outubro 24, 2012 Já tive esse problema: Warning: #1264 Out of range value for column Nesse caso basta mudar de INT para BIGINT no tipo da coluna do banco. O INT só serve para números pequenos. Abraços :) Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 24, 2012 Não seria o caso de usar campo do tipo character ?! Basta validar o CPF antes de gravar para garantir que tem apenas números e um CPF válido. Function que valida CPF para MySql deve ter aos montes na WEB. Compartilhar este post Link para o post Compartilhar em outros sites