我有一个表users,它有一个自动递增的id列。对于每个新用户,我基本上需要将三行插入到三个不同的表中,这三个表分别是1.user、2.user_content和3.user_preferences。插入到user_content和user_preferences中的行由对应于每个用户的id (保存在user中)的id引用。
我该如何做到这一点?
我是否应该首先执行INSERT INTO user查询,使用last_insert_id()获取自动递增的id,然后使用获得的用户id执行另外两个INSERT INTO查询?或者,有没有更简洁的方法呢?
(注意:我使用的是MySQL和PHP,如果有区别,我将使用bigint将id值存储在所有三个表中。)
谢谢!
发布于 2013-01-28 09:44:52
您所描述的方法(首先插入到user中,获取last_insert_id()的结果,然后使用该方法插入到其他两个表中)是完全合理的;我认为它没有任何问题。
在技术上,可以组合这三个查询并使用LAST_INSERT_ID() MySQL函数将值插入到其他两个表中,但这将明显更加复杂,而没有任何相应的好处。换句话说,这并不真正值得去做。
发布于 2013-01-28 09:45:22
我看到3个选项:
使用一些存储过程的触发器PHP端(as describe)
*_last_insert_id *_last_insert_id.https://stackoverflow.com/questions/14554340
复制相似问题