2010-04-03 62 views
13

我有一个字段作为在MySQL如下: 类型:文本 长度:0 小数:0MySQL数据类型:文本,,,示数:数据太长

当我尝试插入周围的数据大小为4页的MS Word,Coldfusion错误:数据太长,来自数据库。

我以为TEXT数据类型能够扩展和处理这个大小的数据?我错过了什么,我该怎么办?

回答

3

文本从提取:

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. 

有效最大长度小于 如果值包含多字节字符 。使用两字节长度前缀 指示 值中的字节数,将每个TEXT值存储为 。

可以给出这种类型的可选长度M.如果这样做,MySQL 创建一个最小的文本类型的列,其大小足以容纳长度为M个字符的值 。

我认为你最好使用该列的BLOB。

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

+0

与TEXT或LONGTEXT相比,BLOB的优缺点是什么? – AnApprentice 2010-04-03 00:32:23

+0

阅读上面的最后一个链接,找出BLOB和文本数据类型之间的区别。 – 2010-04-03 00:33:20

24

类型TEXT被限制为2^16字节,或65536个字节。请尝试使用LONGTEXT代替。它可以保存长度最大为2^32字节的值。

+0

从TEXT到LONGTEXT有积极/消极吗? – AnApprentice 2010-04-03 00:31:57

+1

@nobosh:LONGTEXT每行需要比TEXT多2个字节的存储空间。请参阅:http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html – 2010-04-03 00:42:09