1

最近将表列从数据类型 Text 迁移到 Json。

假设我有这个表定义的列表表,并在其中插入了几条记录

CREATE TABLE `listing` ( 
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`data` json NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

当我尝试更新 JSON 指定列中的任何数据时,它会引发异常:数据截断:无法从具有字符集“二进制”的字符串创建 JSON 值

虽然跟随文章:https ://dev.mysql.com/doc/refman/5.7/en/json.html

这也是指utf8mb4_bin因为 JSON 值的比较区分大小写

4

0 回答 0