如何使用pymysql executemany插入许多行并获取每行的ID

时间:2018-03-09 06:02:44

标签: mysql bulkinsert distributed-system pymysql

这是分发环境中的问题!!!

我在许多分发计算机中都有进程,在每个进程中我使用pymysql将多行插入到具有autoincrease id的表中,我希望我能得到每行的ID。

当我在单个节点上执行此操作时,我有解决方案:我只获取表的最大ID并自行设置插入行的ID,但这在分发环境中会失败,因为如果两个进程同时插入,则将获得相同的最大ID,并且将发生碰撞。

我的效率低下,我可以一次插入一行并使用cursor.lastrowid获取该行的id,但这非常慢。

我发现了类似的问题How can I Insert many rows into a MySQL table and return the new IDs? 但在分发环境中这似乎会失败

我想这必须使用分发锁,任何想法?

0 个答案:

没有答案