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

相关推荐

  • Python 传递参数

    Python 传递参数在Python中,传递参数指的是函数或方法中的参数传输方式。Python中的参数传递有两种方式,分别为“传值调用”和“传引用调用”。

    2024-05-12
    10
  • 数据库事务知识整理「终于解决」

    数据库事务知识整理「终于解决」什么是数据库事务? 事务,就是一系列操作的整体,其结果就是这一系列操作要么全部成功,要么全部失败。 譬如说,一个经典的例子转账。 A要转帐给B 100块钱,要经历以下步骤: 1、扣除A账户100块

    2023-06-11
    102
  • Docker中提交任务到Spark集群[通俗易懂]

    Docker中提交任务到Spark集群[通俗易懂]1. 背景描述和需求 数据分析程序部署在Docker中,有一些分析计算需要使用Spark计算,需要把任务提交到Spark集群计算。 接收程序部署在Docker中,主机不在Hadoop集群上。与Spar

    2023-03-18
    109
  • sql事务处理_sqlserver 触发器

    sql事务处理_sqlserver 触发器事务 四大属性 1,原子性:事务是一个完整的整体,要么都执行,要么都不执行 2,一致性:当事务完成时,数据必须处于一致状态 3,隔离性:对数据修改的所有并发事务是彼此隔离的,即事务必须是独立的,不应以

    2023-06-08
    88
  • 极致效率,云原生数据库TDSQL-C安身立命的根本「建议收藏」

    极致效率,云原生数据库TDSQL-C安身立命的根本「建议收藏」云原生时代需要什么样的数据库?如何构建数据库服务?腾讯云数据库技术负责人程彬认为,云数据库未来趋势会从以托管为核心升级到以极致效率为核心,助力业务降本增效。从数据库管理和应用角度来看,云厂商、资源、客

    2023-05-23
    128
  • [20191112]oracle共享连接模式端口.txt「建议收藏」

    [20191112]oracle共享连接模式端口.txt「建议收藏」[20191112]oracle共享连接模式端口.txt–//如果使用共享服务模式,你可以发现每次重启数据库对应的端口号会发生变化.# netstat -tunlp | egrep "Ac

    2022-12-17
    95
  • Python模块:Pandas数据处理与分析

    Python模块:Pandas数据处理与分析Pandas是一个数据处理和分析的Python库,在数据的清洗、整理、处理、分析等方面提供了很多功能,使得数据分析变得更加高效、简便。它的核心是两个数据结构:Series和DataFrame。Series是一种一维数组,可以用来存储一些列标签或一些应用标签的数据,而DataFrame则是二维结构,类似于表格,可以存储多种类型的数据。Pandas是基于Numpy框架建立的,可以很好地与其它科学计算库协作使用。

    2024-03-27
    27
  • Python自带的默认值: 让你更高效地编写代码

    Python自带的默认值: 让你更高效地编写代码在Python中,函数允许设定默认值,这意味着如果没有为函数的参数指定值,那么就会使用设定的默认参数值。

    2024-01-22
    50

发表回复

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