GO语言分组批量插入数据算法

GO语言分组批量插入数据算法package main import “fmt” // Point 点名 type Point struct { PointID uint64 `json:”pointID”` PathName …

package main

import "fmt"

// Point 点名
type Point struct {
	PointID    uint64  `json:"pointID"`
	PathName   string  `json:"pathName"`
	PointValue float32 `json:"pointValue"`
	StoreTime  string  `json:"storeTime"`
}

func getSqlList(pointList []Point, groupSize int) []string {
	const insertHeader string = "INSERT INTO `local_data`(`point_id`,`path_name`,`point_value`,`store_time`) VALUES"
	sqlList := []string{}
	sql := ""
	for i := 0; i < len(pointList); i++ {
		if i%groupSize == 0 {
			if sql != "" {
				//把上次拼接的SQL结果存储起来
				sqlList = append(sqlList, sql)
			}
			//重置SQL
			sql = insertHeader
		}
		if sql != insertHeader {
			sql = sql + ","
		}
		sql = sql + fmt.Sprintf("(%d,"%s",%f,"%s")",
			pointList[i].PointID,
			pointList[i].PathName,
			pointList[i].PointValue,
			pointList[i].StoreTime)
	}
	//把最后一次生成的SQL存储起来
	sqlList = append(sqlList, sql)
	return sqlList
}

func main() {

	points := []Point{
		Point{1, "p1", 3.14, "2013-11-10 12:00:00"},
		Point{2, "p1", 3.14, "2013-11-10 12"},
		Point{3, "p1", 3.14, "2013-11-10 12"},
		Point{4, "p1", 3.14, "2013-11-10 12"},
		Point{5, "p1", 3.14, "2013-11-10 12"},
		Point{6, "p1", 3.14, "2013-11-10 12"},
		Point{7, "p1", 3.14, "2013-11-10 12"},
		Point{8, "p1", 3.14, "2013-11-10 12"},
		Point{9, "p1", 3.14, "2013-11-10 12"},
		Point{10, "p1", 3.14, "2013-11-10 12"},
		Point{11, "p1", 3.14, "2013-11-10 12"},
		Point{12, "p1", 3.14, "2013-11-10 12"},
		Point{13, "p1", 3.14, "2013-11-10 12"},
		Point{14, "p1", 3.14, "2013-11-10 12"},
		Point{15, "p1", 3.14, "2013-11-10 12"},
		Point{16, "p1", 3.14, "2013-11-10 12"},
		Point{17, "p1", 3.14, "2013-11-10 12"},
	}
	sqls := getSqlList(points, 5)
	for _, s := range sqls {
		fmt.Println(s)
	}
}

代码100分

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10842.html

(0)
上一篇 2022-12-20
下一篇 2022-12-20

相关推荐

  • MongoDB Security[通俗易懂]

    MongoDB Security[通俗易懂]1. Security MongoDB提供了一系列的保护措施,以保护它自身安全: 启用访问控制并实行身份验证 MongoDB支持多种身份认证机制,默认的认证机制是SCRAM 配置基于角色的访问控制 首

    2023-05-04
    134
  • mysql引用完整性约束_java强引用和弱引用

    mysql引用完整性约束_java强引用和弱引用
    ###引用完整性学生表 id 名字 性别 成绩表 id 学生ID 成绩 create table stu7( id int primary key, nam…

    2023-04-10
    152
  • 使用Pycharm设置代码编码格式

    使用Pycharm设置代码编码格式 在编写代码过程中,正确地设置编码格式显得十分重要,否则代码可能会因为编码不对而出现各种错误,而这些错误也可能会是隐藏的,难以发现。在本文中,我们将介绍如何使用Pycharm来正确设置代码的编码格式。

    2024-06-17
    46
  • Python Extend:加强 Python 的功能与应用场景扩展

    Python Extend:加强 Python 的功能与应用场景扩展Python是一种至今为止最为流行的编程语言之一,其简洁易懂的语法和丰富的库支持,使得Python成为了许多领域的首选语言。但是,作为一种通用编程语言,Python并不是完美的,仍有许多应用场景需要Python进行扩展。因此,Python Extend应运而生,通过各种方法加强Python的功能和应用场景扩展。

    2024-02-19
    100
  • (Redis基础教程之十) 如何在Redis中运行事务

    (Redis基础教程之十) 如何在Redis中运行事务介绍 Redis是一个开源的内存中键值数据存储。Redis允许您计划一系列命令,然后一个接一个地运行它们,这一过程称为_transaction_。每个事务都被视为不间断且隔离的操作,以确保数据完整性…

    2023-02-28
    153
  • 查看mysql数据库容量大小「建议收藏」

    查看mysql数据库容量大小「建议收藏」第一种情况:查询所有数据库的总大小,方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LENGTH/1…

    2023-03-05
    155
  • 查看Oracle客户端版本及位数-Windows

    查看Oracle客户端版本及位数-WindowsGPS平台、网站建设、软件开发、系统运维,找森大网络科技!https://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index….

    2023-04-19
    157
  • 如何在Python中使用锚点来创建页面内链接

    如何在Python中使用锚点来创建页面内链接在Web开发中,页面内链接是非常常见的一种需求,可以帮助用户快速定位、跳转到感兴趣的内容区域。Python作为一门优秀的编程语言,也提供了很多实现页面内链接的方法。在本文中,我们将介绍如何在Python中使用锚点来创建页面内链接。

    2024-02-25
    113

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注