MYSQL CAPACIDADE COLUNA TIPO TEXT

NILSONTRES 07/03/2017 23:43:02
#472256
Pessoal,
em um banco mysql tenho uma coluna (text), capacidade de 65535, acontece que agora o Cliente chegou nesse campo a 32237 e aconteceu o data too long for columm, se a quantidade é de 32237 e o campo suporta 65535, porque sera, alguém sabe ?

Obrigado.


KERPLUNK 07/03/2017 23:56:55
#472257
Resposta escolhida
De fato, 2^16 somam 65535 bytes. Que texto o usuário está tentando armazenar?
NILSONTRES 08/03/2017 00:03:47
#472258
Citação:

De fato, 2^16 somam 65535 bytes. Que texto o usuário está tentando armazenar?


São quadros clínicos de animais, a clinica é antiga e tem movimentação monstro.
Mas olha só, encontrei isso e deixando como MEDIUMTEXT resolveu meu problema, pelo menos por hora, vamos ver se alguma consequencia a mais vira.
Obrigado KERPLUNK por se interessar, se achar necessário pode reabrir o Tópico.

Citação:

Um VARCHAR permite 65535 caracteres (bytes se estiver usando uma versão antiga < 5.0). Mas este limite é menor na prática. O tamanho da linha também é este, por isto você não pode ter várias colunas deste tipo com tamanhos grandes. Uma única coluna pode encher toda a linha ou pode ter centenas de colunas VARCHAR. Como o próprio nome diz, o tamanho efetivamente ocupado varia conforme a necessidade.

Um TEXT permite 65535 bytes. E esta diferenciação é importante se estiver usando UTF-8 ou outra codificação multibyte já que um caractere pode ocupar 3 bytes (isto pode mudar de acordo com o charset escolhido - o uso de 3 bytes era um erro no UTF-8 padrão inicial, por isso existe outro charset).

Assim como o TINYTEXT suporta 255 bytes. E se você precisa mais que isto tem que usar MEDIUMTEXT (16MB) ou LONGTEXT (4GB).

O armazenamento desses tipos TEXT é feito fora da linha normal, fica em área específica e não ocupa espaço na linha (exceto pelo apontador, que é bem pequeno, para a localização do dado).


Tópico encerrado , respostas não são mais permitidas