[英]MySQL – Should I use last_insert_id()? or something else?
我有一个表users
,该users
具有一个自动递增的id
列。 对于每个新用户,我基本上都需要在三个不同的表中插入三行,分别是1. user
,2. user_content
和3. user_preferences
。 插入到user_content
和user_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个选项:
*_last_insert_id
(如您所述)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.