空間型を格納する構造体を作成し、データベース内の行をクエリするのに役立つスキャン関数を作成しました。このタイプの挿入に問題があります。
次のSQLを使用してデータを挿入できます。
INSERT INTO 'table' ('spot') VALUES (GeomFromText('POINT(10 10)'));
database/sql/driverで Value インターフェイスを使用する場合;
タイプ値インターフェース{}
値は、ドライバーが処理できなければならない値です。nil または次のいずれかのタイプのインスタンスです。
int64
float64
ブール
[]バイト
文字列 [*] Rows.Next を除くすべての場所。
時間.時間
そして、このコードを使用してください。
func (p Point) Value() (driver.Value, error) {
return "GeomFromText('" + p.ToWKT() + "')", nil
}
最終的に、次の sql ステートメントがデータベースに送信されます。
INSERT INTO 'table' ('spot') VALUES ('GeomFromText('POINT(10 10)')');
問題は、関数GeomFromTextが引用符で囲まれていることです。このシナリオを回避する方法はありますか? 私は gorm を使用しており、生の SQL クエリを最小限に抑えようとしています。
データベース側で使用されている mysql タイプはポイントです。