摘要:
defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }() 在任何涉及到数组取值的地方,都应该在开头写一个这个捕获抛出异常的 数组越界问题最容易出异常,没有抛出就会终结整个程序 数组越界异常,简单来说 阅读全文
|
摘要:
defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }() 在任何涉及到数组取值的地方,都应该在开头写一个这个捕获抛出异常的 数组越界问题最容易出异常,没有抛出就会终结整个程序 数组越界异常,简单来说 阅读全文
摘要:
处理一个循环数据,需要频繁开启数据库事务操作,为了以便于事务的回滚和提交,在循环内部创建一个匿名函数 func(str string) { tx := db.Begin() // 定义局部err变量 var err error defer func() { if r := recover(); r 阅读全文
摘要:
为图方便,建表直接用了mysql的自增id 开发时进行插入操作时,发现插入失败id也自增了,导致id不连续 并且无论是删除还是插入,id是一直在增加 查询结果 MySQL自增ID机制: InnoDB存储引擎的自增ID是持久化的,每次执行INSERT操作(无论成功与否)都会触发自增ID递增。 即使插入 阅读全文
摘要:
一个事务内同一操作二次回滚(Rollback)会报错,二次提交(commit)也会报错, 如果回滚完又进行提交操作,一样会报错 循环注意把事务开启tx.Begin放在事务操作前边,操作完回滚或者提交 阅读全文
摘要:
在MySQL中,'0000-00-00 00:00:00'不是一个合法的DATETIME值。从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列,除非明确允许。 在gorm中,如果没有为DATETIME类型的字段提供具体的时间值,MySQL就会 阅读全文
|