2017-01-16 9 views
3

幾何データを持つデータベースをPostgreSQLに移行します。 POINTデータ型は2つのデータベース間で互換性がないため、私は問題に遭遇しました。MySQL POINTデータ型をPosgreSQLに変換

MySQLでは、POINT値は0xE21D4B40のような単一の16進数文字列です。しかし、PostgreSQL's POINT datatypeは座標が(x,y)の形式であるため、PostgreSQLにこれらを挿入することはできません。このコンバージョンを処理する最良の方法は何ですか?

+3

Postgres側に挿入する前に、それらの値をアンパックする必要があります(https://dev.mysql.com/doc/refman/5.7/en/fetching-spatial-data.html)。 – tadman

+0

それは一番簡単な方法ですね。助けてくれてありがとう! – Ecliptica

+0

あなたがそれを行う正確な方法を見つけ出すなら、後世のために答えを投稿する価値があります。 – tadman

答えて

2

@ tadmanのコメントは、MySQL側の値のペアに16進文字列をアンパックすることで解決しました。私の場合、16進文字列はというテーブルのcityテーブルにあるカラムなので、クエリSELECT ST_AsText(location) FROM city;を使用しました。

これは、PostgreSQLが受け入れてくれるPOINT(-133.03531 54.23346)のような行を返しました。

関連する問題