当前位置: 首页 > 知识库问答 >
问题:

golang-mysql驱动程序-数据库函数

符风畔
2023-03-14

我创建了一个存储空间类型的结构,并创建了一个扫描函数来帮助查询数据库中的行。我有问题插入这种类型。

我可以使用以下sql插入数据;

INSERT INTO 'table' ('spot') VALUES (GeomFromText('POINT(10 10)'));

如果在database/sql/driver中使用值接口;

类型值接口{}

价值是司机必须能够处理的价值。它要么是nil,要么是以下类型之一的实例:

int64

浮动64

布尔

[]字节

字符串[*]除行以外的所有位置。下一步。

时间,时间

并使用此代码;

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个答案

司马腾
2023-03-14

请查看下面的两个URL,这两个URL是这个概念的来源

-- http://howto-use-mysql-spatial-ext.blogspot.com/

create table Points
(   id int auto_increment primary key,
    name VARCHAR(20) not null, 
    location Point NOT NULL, 
    description VARCHAR(200) not null, 
    SPATIAL INDEX(location),
    key(name)
)engine=MyISAM; -- for use of spatial indexes and avoiding error 1464

-- insert a row, so we can prove Update later will work
INSERT INTO Points (name, location, description) VALUES 
( 'point1' , GeomFromText( ' POINT(31.5 42.2) ' ) , 'some place');
-- concept borrowed from http://stackoverflow.com/a/7135890
UPDATE Points 
set location = PointFromText(CONCAT('POINT(',13.33,' ',26.48,')'))
where id=1;
select * from points;

(打开“值编辑器”以查看blob时,该点将更新)

因此,我们需要在update语句中使用concat()

 类似资料:
  • 我正在Powershell中运行以下命令,以便在Circovereci上得到它,但看到错误:无法找到数据库驱动程序:com.mysql.cj.jdbc.driver ./liquibase.bat--classpath=e:\software\liquibase-3.10.2\lib\mysql-connector-java-5.1.48.jar--changelogfile=/db.change

  • 问题内容: 最终用户(开发人员或生产人员)可以推荐一个Sql驱动程序包,最好使用“ database / sql”包。我对Postgres,ODBC,MySql(以及可能用于高容量的其他商品(即,不是Sqlite)的其他商品)感兴趣,这些商品最好可在Windows和/或Linux(最好同时使用)上使用。令我感兴趣的是,它可能需要最近进行了更新/维护,并且必须与最新的Go版本一起使用。效率(吞吐量)

  • xml有一个简单的变更集,它创建了一个表,只是为了在一开始测试liquibase。 但我不会走这么远,因为当我运行项目时 我收到以下错误:

  • 初始化 Paradox 数据库的驱动程序 当安装 Paradox 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM Formats子键写入一些缺省值。不应直接修改这些设置(除非必要);而应使用应用程序的设置程序来添加、删除、或更改这些设置。下列部分描述 Paradox 数据库驱动程序的初始化和 ISAM Formats 设置。 Paradox 数据库驱动程序在两种模式中的

  • 初始化 dBASE 数据库的驱动程序 当安装 dBASE 数据库的驱动程序时,设置程序会在引擎的 Windows 注册表和 ISAM 格式子键写入一些缺省值。不要直接修改这些设置;请使用应用程序的设置程序来添加、删除、或更改这些设置。下列的部分描述 dBASE 数据库驱动程序的初始化和 ISAM 格式设置。 Paradox 数据库驱动程序在两种模式中的哪一种下工作取决于是否安装了Borland数据

  • 导语 在上一节的末尾我们已经看到,现在可用的数据库驱动只有两类3种,那么怎样使用其他的数据库呢?在Qt中,我们需要自己编译其他数据库驱动的源码,然后当做插件来使用。下面就以现在比较流行的MySQL数据库为例,说明一下怎样在QtCreator中编译数据库驱动。 环境:Windows Xp + Qt 4.8.4+Qt Creator2.6.2 目录 一、查看怎样编译数据库驱动 二、下载MySQL 三、