Messiah 0 Denunciar post Postado Outubro 31, 2007 Estou tendo dificuldades no banco de dados de um cliente... sempre utilizei nos campos de algumas tabelas o tipo text, inclusive em outra base de dados nesse mesmo servidor que esta este banco. Porem fui criar outra base nesse servidor e ta dando erro, fica me acusando q esta mto longa a string que tento adicionar na inclusao... #1406 - Data too long for column 'Descricao' at row 1 alguem ja teve algum erro parecido? Compartilhar este post Link para o post Compartilhar em outros sites
uelio 0 Denunciar post Postado Outubro 31, 2007 assim... da um DESCRIBRE ou so DESC na tabela... observa o tipo de dado da coluna e compara com o tamanho dos dados que voce quer inserir.. vou te dar umas descricoes do uns tipos de dados do mysql: TEXT Usado para blocos de texto longo com até 65.536 caracteres MEDIUMBLOB, MEDUIMTEXT Usado para blocos de caracters binários ou de texto longo (até 16.444.216 caracteres) LONGBLOB, LONGTEXT Usado para blocos de caracteres binários ou de texto longo (até 4.294.967.295 caracteres) Tenta mudar o tipo de dados do campo... espero ter lhe ajudado como muitos outros me ajuda.... Abraço e Deus te abençoe... Compartilhar este post Link para o post Compartilhar em outros sites
Messiah 0 Denunciar post Postado Outubro 31, 2007 esse eh o problema.... nao eh grande a instrucao.... nao para encher um campo text q vai ate 65536... CREATE TABLE `agenda` ( `IDAgenda` int(254) NOT NULL auto_increment, `Titulo` varchar(200) collate latin1_general_ci NOT NULL, `Descricao` text collate latin1_general_ci NOT NULL, `Dia` varchar(2) collate latin1_general_ci NOT NULL, `Mes` varchar(2) collate latin1_general_ci NOT NULL, `Ano` varchar(4) collate latin1_general_ci NOT NULL, PRIMARY KEY (`IDAgenda`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ; INSERT INTO `agenda` VALUES (2, 'Dia do Estudante', 'O nonono estará realizando atravésdo projeto nonono, um eventon n on on on ono n non onononono non onono non on ono n ono no non on on ono no non on on o non on on ono n ononono non on on on on onon ononon ononon nonon o ono no no non on on on on on on on on on on ono non ono non oo.\r\n\r\nNo no ono no no nono non o non onono non on ono n ono no non on on ono no non on on o non on on ono n ononono non on on on on onon ononon ononon nonon o ono no no non on on on on on on on on on on ono non ono non.', '17', '11', '2007'); eu tava olhando.. e quando mando listar as tabelas da base de dados ele marca todos como MyISAM como criei .. porem em baixo da lista ele aparece como innoDB.. sera q é isso?? olhei no meu servidor local e em outros servidores de hospedagem q uso.. e tava como MyISAM .. Compartilhar este post Link para o post Compartilhar em outros sites
uelio 0 Denunciar post Postado Outubro 31, 2007 Messiah, acho que o seu problema começa em como utilizar um dado do tipo INT e DATE... Acho que voce nao esta tentando tirar o maximo de voce mesmo... tipo a sua tabela pode ficar assim: CREATE TABLE `agenda` ( `agenda_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `agenda_titulo` VARCHAR( 40 ) NOT NULL , `agenda_descricao` TINYTEXT NOT NULL , `agenda_data` DATE NOT NULL ) ENGINE = MYISAM; e no caso do innoDB acho que voce escolheu essa opção sem querer... vou mandar um link para que voce possa ficar mais por dentro do assunto... cara eu nao sei realmente porque foi que ficou assim... quase parece com um bug.... mas tem um link falando sobre o assunto: http://dev.mysql.com/doc/refman/4.1/pt/innodb.html mas vai ficar ainda pro pessoal responder... caso alguem queira se foi erro do MySQL ou seu.... ta legal.. Compartilhar este post Link para o post Compartilhar em outros sites
Messiah 0 Denunciar post Postado Outubro 31, 2007 Messiah, acho que o seu problema começa em como utilizar um dado do tipo INT e DATE... Acho que voce nao esta tentando tirar o maximo de voce mesmo... tipo a sua tabela pode ficar assim: CREATE TABLE `agenda` ( `agenda_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `agenda_titulo` VARCHAR( 40 ) NOT NULL , `agenda_descricao` TINYTEXT NOT NULL , `agenda_data` DATE NOT NULL ) ENGINE = MYISAM; e no caso do innoDB acho que voce escolheu essa opção sem querer... vou mandar um link para que voce possa ficar mais por dentro do assunto... cara eu nao sei realmente porque foi que ficou assim... quase parece com um bug.... mas tem um link falando sobre o assunto: http://dev.mysql.com/doc/refman/4.1/pt/innodb.html mas vai ficar ainda pro pessoal responder... caso alguem queira se foi erro do MySQL ou seu.... ta legal.. a data eh de preguica mesmo... mais n eh essa a questao... nao selecionei pra criar como innoDB ... ta com cara de bug mesmo.. como mandei na imagem da pra ver q todos estao como MyISAM, o estranho eh ele definir como innoDB depois.. :/ nunca vi disso... vi varios artigos e ate o manual do mysql vairas vezes ... nao consegui intender.. vou pedir para desativarem o innoDB quem sabe resolva... Compartilhar este post Link para o post Compartilhar em outros sites
uelio 0 Denunciar post Postado Novembro 1, 2007 Se eu fosse voce eu exportaria os dados das tabelas e criava elas todas novamente.... ai voce repara se é mesmo bug ou se voce... marcou alguma opção.... Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
RogerioRock 0 Denunciar post Postado Janeiro 26, 2008 Muda o charset da coluna para utf8 que funciona, este banco vagabundo tem um bug, bem que falam que trabalhar pra pobre e trabalhar pra dois link de referencia ://bugs.mysql.com/bug.php?id=17872 Compartilhar este post Link para o post Compartilhar em outros sites
Beneti 0 Denunciar post Postado Fevereiro 1, 2008 Eu quero definir um campo TEXT ou BLOB como chave primária. É possível ou não? tenho um campo DATE e TEXT/BLOB, quero os dois como chave primária, para eu tratar erro de inserção ao inves de ficar checando toda hora. Compartilhar este post Link para o post Compartilhar em outros sites