Mysql: 使用 LastInsertId() 是否安全?

创建于 2015-10-28  ·  5评论  ·  资料来源: go-sql-driver/mysql

如果连接在许多线程之间共享。 使用 LastInsertId() 是否安全? 感谢帮助

最有用的评论

我认为他的意思是Result.LastInsertId() ,它是在result.go#L16 中实现的,它只是使用insertId变量在Exec() 中设置的执行语句的结果。

所以并发使用是完全安全的,因为它存储在结果中,与连接无关。

所有5条评论

不,它不是 - 数据库/sql 的连接池使它不安全。 不过,您可以在交易中使用它。

我认为他的意思是Result.LastInsertId() ,它是在result.go#L16 中实现的,它只是使用insertId变量在Exec() 中设置的执行语句的结果。

所以并发使用是完全安全的,因为它存储在结果中,与连接无关。

什么是不安全的是您的插入后,在执行这样的:

SELECT LAST_INSERT_ID()

因为由于池化,这可能会使用不同的连接。

是的,谢谢。 正是@ErikDubbelboer所说的。

感谢您的输入,我的意思是 Result.LastInsertId()

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

xuewindy picture xuewindy  ·  3评论

zhaohui-kevin picture zhaohui-kevin  ·  5评论

AlekSi picture AlekSi  ·  3评论

tbdingqi picture tbdingqi  ·  7评论

pmoosman picture pmoosman  ·  9评论