You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL的POINT列中插入MySQL导出的WKB数据?

PostgreSQL中执行MySQL导出的WKB格式INSERT语句的正确方法

MySQL里用0x前缀表示十六进制字节串(这里是WKB格式的空间数据),但PostgreSQL不支持这种写法:直接加单引号会被当成普通文本字符串,用POINT()函数又需要明确的坐标值而非WKB字节,所以这两种方法都会报错。

正确的做法是把0x后面的十六进制内容提取出来,用PostgreSQL的decode()函数将其转为二进制数据,再通过PostGIS的ST_GeomFromWKB()函数解析成空间几何对象。

修改后的INSERT语句如下:

INSERT INTO cities VALUES ('Nameoftheciy', ST_GeomFromWKB(decode('0000000001010000005C21ACC6129C48407AFF1F274CA65EC0', 'hex')));

如果你的cities表第二个字段是point类型,也可以用ST_PointFromWKB()替代ST_GeomFromWKB(),效果一致——因为WKB数据本身已经包含了几何类型的元信息,PostGIS能自动识别解析。

内容的提问来源于stack exchange,提问作者Moseleyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:45:39