我创建了一个存储空间类型的结构,我创建了一个扫描函数来帮助查询我的数据库中的行 . 我在插入此类型时遇到问题 .
我可以使用以下sql插入数据;
INSERT INTO 'table' ('spot') VALUES (GeomFromText('POINT(10 10)'));
如果我在database / sql / driver中使用Value接口;
type Value interface {}值是驱动程序必须能够处理的值 . 它是nil或这些类型之一的实例:int64 float64 bool [] byte string [*]除了Rows.Next之外的任何地方 . 了time.time
并使用此代码;
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类型是一个点 .
1 回答
请参阅以下两个网址,其中挖掘了这个概念
架构
更新声明
验证
(当您打开值编辑器以查看blob时,该点会更新)
因此,最重要的是使用更新语句中的
concat()
.