我有一个表users
,其中包含一个自动递增的id
列。对于每个新用户,我基本上需要在三个不同的表中插入三行,分别为1. user
,2。user_content
和3. user_preferences
。插入user_content
和user_preferences
的行由id
引用,这些行对应于每个用户的ID(保存在user
)
我如何做到这一点?
我应该首先执行INSERT INTO user
查询,使用id
获取自动递增的last_insert_id()
,然后使用获取的用户ID获取其他两个INSERT INTO
查询吗?或者,有没有更简洁的方法来做到这一点?
(注意:我使用的是MySQL和PHP,如果它有所不同,我使用bigint
在所有三个表中存储id
值。)
谢谢!
答案 0 :(得分:2)
您所描述的方法(首先插入user
,取last_insert_id()
的结果,并使用它插入其他两个表)是完全合理的;我认为没有错。
在技术上可能将三个查询组合在一起并使用LAST_INSERT_ID()
MySQL函数将值插入到其他两个表中,但这会更复杂,没有任何相应的好处。换句话说,不值得做。
答案 1 :(得分:1)
我看到3个选项:
*_last_insert_id
(正如您所描述的)