首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与统一ID相关的MySQL查询优化

与统一ID相关的MySQL查询优化
EN

Stack Overflow用户
提问于 2012-03-20 23:33:40
回答 4查看 83关注 0票数 0

我有两张桌子。在一个表中,我添加了事件,ID是自动递增。第二个表包含个人事件。

因此,如果我创建事件,它会添加到两个表中。

下面是我的代码示例。因此,首先,我在常规表中添加了一个新事件。然后,我想将相同的事件添加到调度表中,但我需要获得刚刚添加的事件的ID。所以我执行第二个查询。

有没有什么优化的方法可以做到这一点,或者至少在不需要额外查询的情况下获得刚刚添加的事件的ID?

代码语言:javascript
复制
mysql_query("INSERT INTO events (title, description, user) VALUES ('$title', '$description', '".$user['id']."')");

$id = mysql_fetch_array(mysql_query("SELECT id FROM events WHERE user='".$user['id']."' ORDER BY date_added DESC LIMIT 1"));

mysql_query("INSERT INTO schedule (uid, event) VALUES ('".$user['id']."', '".$id['id']."')") or die(mysql_error());
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-20 23:36:39

我想mysql_insert_id()就是你要找的..。

您还可以在第二个INSERT查询中使用MySQL原生LAST_INSERT_ID()

代码语言:javascript
复制
mysql_query("INSERT INTO schedule (uid, event) VALUES ('".$user['id']."', LAST_INSERT_ID())") or die(mysql_error()); 

...and完全跳过检索ID。

票数 2
EN

Stack Overflow用户

发布于 2012-03-20 23:37:48

没有“优化”的方法。

有一种正确的方法可以获得插入的id,称为mysql_insert_id()

票数 0
EN

Stack Overflow用户

发布于 2012-03-20 23:38:00

我猜您正在寻找最后插入的id:LAST_INSERT_ID()

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

https://stackoverflow.com/questions/9789843

复制
相关文章

相似问题

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