Ryo's blog

归档 · 2022

首页

关于

归档

MiddlewareMySQL

MySQL 自增列 Duplicate Error 问题分析

一、背景最近我们在做线上的数据迁移测试(可以理解就是把A数据中心的数据迁移到B数据中心,A和B数据中心的MySQL是同构的,迁移过程中,A、B的MySQL都有正常的业务数据写入,具体背景可以看 数据传输系统落地和思考 这篇文章)。每次我们触发迁移的时候,就有业务方反馈他们写入数据的时候就会有Error 1062: Duplicate entry 'xxx' for key 'PRIMARY'这样的错误。业务方同学还反馈他们写数据的时候并没有指定ID,所以他们对这样的报错比较困惑,具体他们的数据写入的伪代码如下: type Data struct { ID int64 `gorm:"primaryKey;column:id"` PageID string..

更多
Golang

Go for-range 的奇技淫巧

背景朋友发了两个代码片段给我看,让我猜输出的内容是啥。具体代码如下: // Demo1 // 1. 这个循环是否能停下来? // 2. 如果能停下来,打印的 arr 内容是什么? arr := []int{1, 2, 3} for _, v := range arr { arr = append(arr, v) } fmt.Println(arr) // Demo2 // 1. idx 和 value 输出多少? // 2. 输出几行? str := "你好" for idx, v := range str { fmt.Printf("idx = %d , value = %c\n", idx, v) } 不卖关子,先说下第一个Demo输出的是: [1 2 3 1 2 3] 第二..

更多