You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL:将存储JSON的longtext列迁移至JSON列的方法

实现步骤

1. 添加JSON类型的新列

首先给表新增一个JSON类型的列,示例命名为JsonData:

ALTER TABLE MyTable ADD COLUMN JsonData JSON;

2. 迁移原列的JSON数据到新列

使用CAST函数将longtext格式的JSON字符串转换为JSON类型,写入新列:

UPDATE MyTable SET JsonData = CAST(Data AS JSON);

注意:如果原Data列存在非法JSON格式的数据,CAST操作会报错。可以先通过以下SQL筛选出非法数据并提前修正:

SELECT Id, Data FROM MyTable WHERE NOT JSON_VALID(Data);

3. 验证数据迁移正确性

对比原列和新列的内容,确保数据完全一致:

SELECT 
    Id,
    Data AS OriginalData,
    JsonData AS NewJsonData
FROM MyTable
WHERE Data != CAST(JsonData AS CHAR);

若查询结果为空,说明所有数据迁移无误。

4. (可选)统一列名

如果需要保持原列名Data不变,确认数据正确后执行以下操作:

-- 删除原longtext类型的Data列
ALTER TABLE MyTable DROP COLUMN Data;
-- 将新列重命名为Data
ALTER TABLE MyTable CHANGE COLUMN JsonData Data JSON;

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:25:20