一、问题描述
今天插入 Mysql 数据库时遇到以下错误
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'body' at row 1
插入的是富文本编辑器的内容,以上我的 body 列的类型是 text,以前编辑文章都能足够容纳文章内容。这个项目是使用 Vuejs 做的管理后台,编辑器用的是 vue-quill-editor,这个编辑器对图片的处理是把图片进行 Base64 编码到文本中,然后插入数据库的时候长度就超了。
二、解决方案
把数据库对应的列类型改为 mediatext 或 longtext 就可以了。
三、相关知识
Mysql 相关字符类型的长度:
TINYBLOB, TINYTEXT L + 1 bytes, where L < 2^8 (255 Bytes)
BLOB, TEXT L + 2 bytes, where L < 2^16 (64 Kibibytes)
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Mebibytes)
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gibibytes)