我正在使用从MySQL到PostgreSQL的几何数据迁移数据库。我遇到了麻烦,因为POINT数据类型在两个数据库之间不兼容。
在MySQL中,POINT值是单个十六进制字符串,如0xE21D4B40
。但是,我无法将这些插入到PostgreSQL中,因为PostgreSQL's POINT datatype需要(x,y)
形式的坐标。处理此转换的最佳方法是什么?
答案 0 :(得分:2)
@ tadman的评论最终成为我的解决方案:将十六进制字符串解压缩到MySQL端的一对值。在我的例子中,十六进制字符串是location
表中名为city
的列,因此我使用了查询SELECT ST_AsText(location) FROM city;
。
返回的行如POINT(-133.03531 54.23346)
,PostgreSQL乐于接受。