2010-04-03 57 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