在MySQL数据库中,如何将varchar设置为具有无限长度,以便我可以存储长网页?如果没有,那么最大尺寸是多少?
我知道文本类型可以存储更大的字符串。使用我必须处理的测试数据类型是否有任何限制?
答案 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)
您应该尝试此方法:请参阅此链接:
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。它适合你