将MySQL数据库数据转换为PGSQL数据库,及遇到的问题

将MySQL数据库数据转换为PGSQL数据库

近期实践了一下如何将MySQL的数据转换到PGSQL中

使用navicat15及以上版本的数据传输功能

首先选择工具中的数据传输功能
在这里插入图片描述
传输之前要在pgsql中建立一个接受数据的数据库,为了方便选择同名数据库
在这里插入图片描述
然后选择要传输的数据库
在这里插入图片描述
选择要传输的数据
在这里插入图片描述
因为MySQL转PGSQL是会由于语法不通出错,所以可以在选项中选择错误时继续
在这里插入图片描述
随后点击开始即可
在这里插入图片描述

记得记录下出错的表和错误内容
在这里插入图片描述
随后就可以看到表格已经添加到PGSQL中了
在这里插入图片描述

转移时遇到的问题

我遇到的大致可以分为三类错误

  1. 数值类型错误
  2. 设置索引错误
  3. 设置外键错误

数值类型错误

因为转换后PGSQL默认id是int4类型,而MySQL自带的information_schema数据库中有许多的id数据超出了int4的上限,改为int8或numeric可以解决问题

设置索引错误

MySQL中不同表之间可以有同名索引,但是PGSQL是同一数据库共用一个索引库,所以要避免索引名字重复

设置外键错误

MySQL是支持复合主键的其中一个作为外键的,虽然MySQL不推荐,但它确实是支持的。但PGSQL不支持这种做法,当你的MySQL使用了复合主键是要注意。
再不更改数据库现有结构下,可以添加想要作为外键的字段的唯一键,在添加唯一键后,便可以设置外键了

附一个比较清晰的复合主键与联合主键的讲解:
https://www.cnblogs.com/CNty/p/10941398.html

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: to_char是pgsql数据库中的一个函数,用于将数据类型转换为字符类型。它的语法如下: to_char(expression, format) 其中expression是要转换数据类型,可以是数字、日期等;format是转换后的字符类型的格式,可以是日期格式、数字格式等。例如: SELECT to_char(1234.56, '9999.99'); -- 将数字转换为字符类型,保留两位小数 SELECT to_char(current_date, 'YYYY-MM-DD'); -- 将当前日期转换为字符类型,格式为年-月-日 to_char函数可以用于数据类型的格式化输出,方便数据的展示和处理。 ### 回答2: to_char是pgsql数据库中一个非常有用的函数,它可以将不同类型的数据转换为指定格式的字符串数据。to_char函数有多种用法,下面将详细介绍它们的用法。 to_char(数字, 格式) to_char函数常用于将数字类型的数据转换成字符串。其中,第一个参数是待转换的数字,第二个参数是指定的格式。比如: to_char(123, '9999') 将数字123转换为字符串“ 123”,在左边补足1个空格; to_char(123, '0') 将数字123转换为“123”,在左边补足多个0; to_char(123, 'FM99.999') 将数字123转换为“123.000”,使用FM指定不将前导的空格和0包含在输出结果中; to_char(0.1234, 'FM99.999') 将小数0.1234转换为“.123”,在前面不补0。 to_char(日期, 格式) to_char函数除了可以将数字类型的数据转换成字符串,还可以将日期类型的数据转换成字符串。其中,第一个参数是待转换的日期,第二个参数同样是指定的格式。比如: to_char('2022-01-01', 'YYYY-MM-DD') 将日期'2022-01-01'转换为字符串“2022-01-01”; to_char('2022-01-01', 'Day') 将日期'2022-01-01'转换为“Saturday”,使用Day指定输出星期几的完整名字; to_char('2022-01-01', 'Day, DDth "of" Month') 将日期'2022-01-01'转换为“Saturday, 1st of January”,使用Day、DD和Month指定输出星期几、日和月的完整名字。 to_char(时间, 格式) to_char函数还可以将时间类型的数据转换成字符串。其中,第一个参数是待转换的时间,第二个参数同样是指定的格式。比如: to_char('01:01:01', 'HH12:MI:SS PM') 将时间'01:01:01'转换为字符串“01:01:01 AM”,使用HH12指定输出12小时制的小时数,PM指定输出上午、下午。 to_char('01:01:01', 'HH24:MI:SS') 将时间'01:01:01'转换为“01:01:01”,使用HH24指定输出24小时制的小时数。 综上所述,to_char函数是pgsql数据库非常常用的一个函数,可以将不同类型的数据转化为字符串类型,具有很强的灵活性和应用广泛性,非常方便使用。 ### 回答3: to_char是PostgreSQL中用于将不同数据类型转换成字符类型的函数。其用法如下: to_char(value, format) 其中value表示待转换的数值或日期,format表示指定输出格式的模板。to_char函数可以接受多种不同类型的数据作为参数,例如整数、小数、日期等,根据所传入的参数需要选择相应的format格式。以下是一些常用的format格式: 1. 9,0:表示分别占用一位数字的整数,0表示空缺的位用数字0填充,9表示空缺的位用空格填充; 2. 99,00:同上,但保留两位数字; 3. YYYY-MM-DD HH:MI:SS:表示年-月-日 时:分:秒; 4. DAY:表示星期几; 5. MONTH:表示月份(全称); 6. MON:表示月份(缩写); 7. FM9999999.00:表示小数保留两位有效数字,且不显示千分符。 在to_char函数中使用format模板时,要将需要转换的值传入其中的占位符中,例如: SELECT to_char(1234.56, 'FM9999.00') AS result; // 结果为:1234.56 除了数字和日期类型,to_char函数还能将时间戳和间隔时间这两种特殊类型转换为字符类型。时间戳转换时可以使用带有TZ或WITH TIME ZONE的format格式,间隔时间转换时可以使用类似YEAR、MONTH、DAY、HOUR、MINUTE、SECOND的占位符。例如: SELECT to_char('2019-11-11 00:00:00+08'::timestamp with time zone, 'YYYY-MM-DD HH:MI:SS TZ') AS result; // 结果为:2019-11-11 00:00:00 +08 SELECT to_char(interval '5 hours 30 minutes', 'HH24:MI:SS') AS result; // 结果为:05:30:00 总之,to_char函数是PostgreSQL中十分重要和常用的函数之一,在进行数据类型转换时或者将特殊类型转为字符类型时尤其有用。需要注意的是,在使用to_char时需要正确选择format格式来保证输出的结果符合预期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值