last_insert_id有多个线程

Spl*_*ang 5 .net c# mysql multithreading

我正在用C#编写一个基本上由两个线程组成的应用程序.线程1获取数据并将其放入数据库,线程2获取该数据执行一些额外的操作.我是否会遇到last_insert_id的问题,比如在第一个线程中从第二个线程中完成的插入中获取插入ID?我正在使用连接器.net并主要使用MySqlHelper和连接字符串作为参数.

在这种情况下last_insert_id是否可以安全使用,或者我最好重新考虑我的方法,比如为这些任务创建两个单独的应用程序?

另外,我不能在一个线程中做所有事情.每个线程定期运行并完成不同的操作.第一个线程必须能够在第二个线程执行其操作时插入数据.

Mar*_*c B 6

last_insert_id()在PER CONNECTION的基础上是可靠的.如果您的线程共享相同的MySQL连接并进行插入,则未定义您将检索的ID.

如果你没有运行太多的线程,你可能最好让各个线程打开自己的MySQL连接,然后你就可以毫无问题地使用last_insert_id()了.