我创建了一个结构来存储空间类型,并创建了一个扫描函数来帮助查询数据库中的行。我在插入这种类型时遇到问题。
我可以使用以下 sql 插入数据;
INSERT INTO 'table' ('spot') VALUES (GeomFromText('POINT(10 10)'));
如果我在database/sql/driver中使用 Value 接口;
类型值接口{}
价值是司机必须能够处理的价值。它要么是 nil,要么是以下类型之一的实例:
整数64
浮动64
布尔
[]字节
除了 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 类型是一个点。