mysql转人大金仓报告_人大金仓 TEXT 转 JSON 最方便的方式

之前负责的一个项目有使用到 mysql JSON 字段的列,直接通过金仓数据库提供的迁移工具会导致 JSON 映射的列内的中文字符编码乱码,这里提供一个本人测试过的思路解决该问题。

备份一份需要迁移的 mysql 数据库。

将需要转换的 mysql 数据库的列从 JSON 类型改为 TEXT 类型。

使用数据库迁移工具执行 mysql 到 金仓的数据库的迁移工作。

对迁移后的数据列执行 JSON 转换,具体的 TEXT 到 JSON 转换语句为 ALTER TABLE ALTER COLUMN TYPE JSON USING ::JSON;。

如此一来间接的转换后就不会发生 JSON 列内中文乱码问题了。

具体乱码原因为数据库迁移工具缺少针对 JSON 转换的中文编码处理。

之前人大金仓的工程师是通过 mysql 导出为中间表 csv 的形式之后,再通过 csv 导入到 金仓数据库,非常麻烦,而且如果文件很大导出工作可能会很困难。

其他说明,关于 PostgreSQL 中的语句 ALTER TABLE ALTER COLUMN TYPE JSON USING ::JSON;

关于 PostgreSQL 中的 JSON 和 JSONB 区别如下:

jsonb 类型的输出是对输入的内容进行了重新格式化,并删掉了输入时文本

中的空白。此外,插入记录时属性字段的顺序信息是不保留的。

jsonb 比 json 多支持的运算符有以下几个:等值判定运算符(=)、包含关系判定运算符

(@>)、被包含关系判定运算符(

意一个已存在的运算符(?|),以及判定一组键值中的每一个是否均已存在的运算符(?&)。

jsonb 类型的字段上可以直接建立 GIN 索引

jsonb 不允许其内部记录的键值重复,如果出现重复则会从中自动选择一条,其余的

重复记录会被丢弃,但 json 类型中记录键值重复是允许的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值