如何设置varchar有无限长度?

时间:2014-03-31 08:12:15

标签: mysql

在MySQL数据库中,如何将varchar设置为具有无限长度,以便我可以存储长网页?如果没有,那么最大尺寸是多少?

我知道文本类型可以存储更大的字符串。使用我必须处理的测试数据类型是否有任何限制?

5 个答案:

答案 0 :(得分:49)

VARCHAR可以在MySQL 5.0.3之前存储多达255个字符,在5.0.3及更高版本中存储65,535个字符。

要在Mysql数据库中存储大数据,您可以使用

TEXT,MEDIUMTEXT,LONGTEXT

TEXT can store 65,535 characters (approx 64KB)
MEDIUMTEXT = 16,777,215 characters (approx 16 MB) 
LONGTEXT = 4,294,967,295 chars (approx 4GB)

答案 1 :(得分:3)

您应该尝试此方法:请参阅此链接:

<强> MySQL - How to increase varchar size of an existing column in a database without breaking existing data?

alter table table_name modify col_name varchar(10000)

ALTER TABLE `table_name`
   CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);

或您应该使用此方法:

TEXT can store 65,535 characters (approx 64KB)
MEDIUMTEXT = 16,777,215 characters (approx 16 MB) 
LONGTEXT = 4,294,967,295 chars (approx 4GB)

答案 2 :(得分:2)

您可以尝试使用varchar(max)

答案 3 :(得分:0)

要回答他问题的另一部分...

我需要处理任何限制吗?

根据软件版本,数据存储引擎等的不同,可能存在各种无法预料的限制。

我遇到了这些。

ALTER TABLE reportserver.report ADD reportquery varchar(65535)

错误代码:1074。列长度对于列“ reportquery”而言太大(最大值= 21845);改用BLOB或TEXT

ALTER TABLE reportserver.report ADD reportquery varchar(21845)

错误代码:1118。行大小太大。不包括BLOB在内的已使用表类型的最大行大小为65535。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB

您可能会在设置表时遇到这些问题,或者根本不遇到这些问题,但是您可能想要直接使用TEXT路线,而不是冒无法添加更多列或无法扩大一列的风险。如果您的列的宽度很宽,则远离。

答案 4 :(得分:-3)

您可以使用varchar2。它在许多方面优于varchar

http://www.orafaq.com/faq/what_is_the_difference_between_varchar_varchar2_and_char_data_types

或者

你可以试试TEXT。它适合你