首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql_insert_id插入大量数据

问使用mysql_insert_id插入大量数据
EN

Stack Overflow用户
提问于 2010-09-15 07:16:21
回答 2查看 786关注 0票数 3

我想使用PHP和MySQL将数据插入到数据表及其关联的多对多表中。在多对多表中使用数据表的自动递增的主ID。因此,我需要知道要插入到多对多表中的数据表的ID。

我目前的想法是,最好的方法是使用循环,它首先插入到数据表中,然后使用mysql_insert_id()插入多对多表中。这是最好的方法吗?

此外,我是否需要担心使用该函数获取错误的id?许多工作者将同时使用这个数据脚本,所以我担心来自一个工作者查询的ID最终会在对另一个工作者查询的mysql_insert_id()的调用中返回。这是一个合理的担忧吗?如果是的话,我该如何处理呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-15 07:21:54

在具有auto_increment id的表上调用mysql_insert_id()正是正确的方法。

只要在调用mysql_query()插入行之后直接调用mysql_insert_id(),就不需要担心获得错误的id。PHP和MySQL会帮你搞定这一切的。

票数 3
EN

Stack Overflow用户

发布于 2010-09-15 07:22:02

如果你能把桌子锁上。

代码语言:javascript
复制
LOCK TABLE myTable FOR WRITE;
SELECT MAX(id) FROM myTable;
INSERT....
INSERT....
INSERT....
SELECT MAX(id) FROM myTable;
UNLOCK TABLES;

这将阻止其他任何人使用myTable执行任何操作,但您将获得ids的最小/最大范围。

-daniel

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3713608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档