如果连接在许多线程之间共享。 使用 LastInsertId() 是否安全? 感谢帮助
不,它不是 - 数据库/sql 的连接池使它不安全。 不过,您可以在交易中使用它。
我认为他的意思是Result.LastInsertId() ,它是在result.go#L16 中实现的,它只是使用insertId
变量在Exec() 中设置的执行语句的结果。
所以并发使用是完全安全的,因为它存储在结果中,与连接无关。
什么是不安全的是您的插入后,在执行这样的:
SELECT LAST_INSERT_ID()
因为由于池化,这可能会使用不同的连接。
是的,谢谢。 正是@ErikDubbelboer所说的。
感谢您的输入,我的意思是 Result.LastInsertId()
最有用的评论
我认为他的意思是Result.LastInsertId() ,它是在result.go#L16 中实现的,它只是使用
insertId
变量在Exec() 中设置的执行语句的结果。所以并发使用是完全安全的,因为它存储在结果中,与连接无关。