繁体   English   中英

MySQL –我应该使用last_insert_id()吗? 或者是其他东西?

[英]MySQL – Should I use last_insert_id()? or something else?

我有一个表users ,该users具有一个自动递增的id列。 对于每个新用户,我基本上都需要在三个不同的表中插入三行,分别是1. user ,2. user_content和3. user_preferences 插入到user_contentuser_preferences中的行由其id引用,该id与每个用户的id对应(保存在user

我该如何完成?

我是否应该先执行INSERT INTO user查询,使用last_insert_id()获得该自动递增的id ,然后再使用获得的用户ID获得其他两个INSERT INTO查询? 或者,是否有更简洁的方法?

(注意:我正在使用MySQL和PHP,如果bigint ,我正在使用bigint在所有三个表中存储id值。)

谢谢!

您描述的方法(首先插入user ,获取last_insert_id()的结果,并使用其插入其他两个表)是完全合理的; 我认为没有错。

从技术上讲,可以合并三个查询并使用LAST_INSERT_ID() MySQL函数在其他两个表中插入值,但这在没有任何相应好处的情况下将变得更加复杂。 换句话说,这确实不值得做。

我看到3个选项:

  1. PHP端使用一些*_last_insert_id (如您所述)
  2. 创建触发器
  3. 使用存储过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM