首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从golang MySQL包中获取粒度负载数据结果?

问如何从golang MySQL包中获取粒度负载数据结果?
EN

Stack Overflow用户
提问于 2020-12-04 09:23:05
回答 1查看 36关注 0票数 1

我正在编写一个与MySQL数据库交互的Go程序。在MySQL中,当您执行LOAD DATA查询时,除了常规的X rows affected行之外,还会得到一个包含更细粒度信息的行:

代码语言:javascript
复制
mysql> LOAD DATA LOCAL INFILE 'many-lines.tsv' REPLACE INTO TABLE test_table (id, timestamp);
Query OK, 6 rows affected (0.01 sec)
Records: 3  Deleted: 3  Skipped: 0  Warnings: 0

“语句结果信息”部分下的As documented here。

我很希望能够通过我的Go程序访问它,但我不知道如何访问,甚至不知道它是否可能。sql.DB.Exec() returns a Result,但是那个only has a RowsAffected field。这包含写入的行数+删除的行数,并忽略跳过的行数,因此是不明确的(write 3、delete 2和skip 2与write 5、delete 0和skip 0相同)。

我找遍了documentation for the Go MySQL driver,但是找不到我想要的东西。

有没有办法获取这些信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-04 10:15:49

该信息实际上是服务器的ER_LOAD_INFO“错误”(名义上是信息)消息。

这将作为信息消息在OK response中从服务器传递。

看一下OK packet in go的解码过程,它并没有解析出info (human readable status information)。建立连接时,请确保clientSessionTrack是连接标志的一部分。

因此,只要对Go MySQL驱动程序进行一些小的增强,您就可以访问它了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65136607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档