【问题标题】:How to set a varchar to have unlimited length?如何将 varchar 设置为无限长?
【发布时间】:2014-03-31 08:12:15
【问题描述】:

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

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

【问题讨论】:

标签: mysql


【解决方案1】:

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

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

文本、中文本、长文本

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】:

    你应该试试这个方法:参考这个链接:

    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)
    

    【讨论】:

      【解决方案3】:

      您可以尝试使用 varchar(max)

      【讨论】:

        【解决方案4】:

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

        我有什么需要处理的限制吗?

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

        我遇到了这些。

        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 路线如果您的列很宽,请远离。

        【讨论】:

          【解决方案5】:

          您可以使用 varchar2。它在很多方面都比 varchar 好

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

          或者

          你可以试试 TEXT。它会为你工作

          【讨论】:

          • 这个错误的答案:我认为你不应该看到tag,他只在oracle 中提到mysql 类型varchar2..
          • 看起来最新的 mySql 已经表现得像 varchar2。所以干杯! :)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-03
          • 2021-02-06
          • 2013-12-13
          • 1970-01-01
          • 2013-08-29
          相关资源
          最近更新 更多