我有一个表 users
,它有一个自动递增的 id
列。对于每个新用户,我基本上需要在三个不同的表中插入三行,分别是 1. user
、2. user_content
和 3. user_preferences
。插入到 user_content
和 user_preferences
中的行由它们的 id
引用,这对应于每个用户的 id(保存在 user
)
我该如何实现?
我是否应该先执行 INSERT INTO user
查询,使用 last_insert_id()
获取自动递增的 id
,然后再执行其他两个查询INSERT INTO
使用获取的用户 ID 进行查询?或者,是否有更简洁的方法来执行此操作?
(注意:我使用的是 MySQL 和 PHP,如果它们有所不同,我正在使用 bigint
来存储所有三个表中的 id
值。)
谢谢!
最佳答案
您所描述的方法(首先插入 user
,获取 last_insert_id()
的结果,然后使用它插入其他两个表)是完全合理;我看不出有什么问题。
从技术上讲,将这三个查询结合起来并使用 LAST_INSERT_ID()
MySQL 函数将值插入到其他两个表中可能在技术上是可行的,但是如果没有任何相应的好处,这将明显更加复杂。换句话说,不值得去做。
关于php - MySQL – 我应该使用 last_insert_id() 吗?或者是其他东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554340/