2010-04-03 5 views
13

J'ai un champ comme suit MySQL: Type: Texte Longueur: 0 Décimales: 0MySQL type de données: texte ,,, erroring: données trop long

Et quand je tente d'insérer des données dans le taille de 4 pages de MS Word, erreurs Coldfusion avec: Data Too Long de la DB.

Je pensais que le type de données TEXT était capable de développer et gérer cette taille de données? Qu'est-ce qui me manque et que puis-je faire?

Répondre

3

texte extrait de:

MySQL 5.1 Reference Manual :: 10 Data Types :: 10.1 Data Type Overview :: 10.1.3 Overview of String Types

TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name] 

A TEXT column with a maximum length of 65,535 (2^16 – 1) characters. 

La longueur maximale effective est inférieure si la valeur contient plusieurs octets caractères. Chaque valeur TEXT est enregistrée en utilisant un préfixe de longueur de deux octets que indique le nombre d'octets dans la valeur .

Une longueur optionnelle M peut être donnée pour ce type. Si cela est fait, MySQL crée la colonne comme le plus petit type de TEXTE suffisamment grand pour contenir les valeurs M caractères.

Je pense que vous feriez mieux d'utiliser BLOB pour cette colonne.

MySQL 5.0 Reference Manual :: 10 Data Types :: 10.4 String Types :: 10.4.3 The BLOB and TEXT Types

+0

Quel est le pour/contre de BLOB par rapport à TEXT ou LONGTEXT? – AnApprentice

+0

Lisez le dernier lien ci-dessus pour trouver les différences entre les types de données BLOB et Texte. –

24

Le type TEXT est limité à 2^16 octets, ou 65536 octets. Essayez d'utiliser le type LONGTEXT à la place. Il peut contenir des valeurs allant jusqu'à 2^32 octets.

+0

Y a-t-il un lien positif/négatif entre TEXT et LONGTEXT? – AnApprentice

+1

@nobosh: Un LONGTEXT nécessite 2 octets de stockage de plus par ligne qu'un TEXT. Voir: http://dev.mysql.com/doc/refman/5.0/fr/storage-requirements.html –