我的mysql不支持text

2023年 8月 2日 67.5k 0

在我的项目中,我使用了MySQL作为数据库管理系统。但是最近我遇到了一个问题,当我尝试向数据库中插入大量文本数据时,MySQL提示我不能使用text类型。

CREATE TABLE messages (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
message TEXT DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO messages (message) VALUES ("This is a very long message...");
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

我的mysql不支持text

这是因为MySQL的默认行大小限制为65535字节。而在我的情况下,插入的文本数据超出了该限制,导致错误提示。

为了解决这个问题,我使用了以下方法:

  1. 使用MEDIUMTEXT类型代替TEXT类型
  2. 将表的行格式设置为dynamic

代码示例如下:

ALTER TABLE messages MODIFY message MEDIUMTEXT;
ALTER TABLE messages ROW_FORMAT=DYNAMIC;

这些方法可以解决MySQL不支持text类型的问题。但需要注意的是,使用MEDIUMTEXT类型和dynamic行格式可能会影响性能和存储空间。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论