使用DBeaver把Mysql转换成Postgresql遇到的问题汇总
dbeaver
DBeaver 是一个通用的数据库管理工具,支持跨平台使用。* 支持多种数据库类型,如 MySQL、PostgreSQL、MongoDB 等;提供 SQL 编辑、查询、调试等功能;支持数据迁移和比较。* 特点:免费开源;界面友好;功能丰富。
项目地址:https://gitcode.com/gh_mirrors/db/dbeaver
免费下载资源
·
如果把脚本转换后出现了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() 函数成功去除字段值后面的空格。
GitHub 加速计划 / db / dbeaver
22
1
下载
DBeaver 是一个通用的数据库管理工具,支持跨平台使用。* 支持多种数据库类型,如 MySQL、PostgreSQL、MongoDB 等;提供 SQL 编辑、查询、调试等功能;支持数据迁移和比较。* 特点:免费开源;界面友好;功能丰富。
最近提交(Master分支:5 个月前 )
6a8c1d07
* #35624 Fix visualization of infinity for date in postgres
* #35624 Add isReadDateAsObject only for infinity case returns true
* #35624 Return to previous variant 5 天前
7a70d327
5 天前
更多推荐
已为社区贡献9条内容
所有评论(0)