使用DBeaver把Mysql转换成Postgresql遇到的问题汇总

如果把脚本转换后出现了bpchar(xx)类型,那么一定要修改成varchar(xx)类型,否则字段值的后面会有空格,无论怎么update都是无效的,唯有更改为varchar(xx)类型再执行例如:

UPDATE sys_power SET open_type = RTRIM(open_type);
再查询: select open_type from sys_power; 这样就会发现上面这条update语句清除值后方空格有效了,之前无效

更改后前面的步骤后,如果导出建表语句出现字段后面默认值显示DEFAULT NULL::bpchar ,那么可以全局替换成DEFAULT NULL,因为bpchar已经不需要了

在 PostgreSQL 中,bpchar 类型是一种固定长度的字符类型,它会在存储字符串时自动填充空格以达到指定的长度。这导致在更新 bpchar 类型字段时,即使使用了 RTRIM() 函数去除空格,也会出现空格保留的情况。

这种行为是由于 bpchar 类型的特性决定的。它将字符串存储为固定长度,如果字符串长度不足指定长度,会自动使用空格进行填充,而无论字段值后面是否有额外的空格。

如果你希望完全去除字段值后面的空格,可以考虑将字段类型更改为 varchar 类型,因为 varchar 类型是变长的,并不会自动填充空格。这样,你可以使用 RTRIM() 函数成功去除字段值后面的空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往事不堪回首..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值