【发布时间】:2018-11-14 11:22:53
【问题描述】:
如何在MYSQL的INSERT QUERY的另一列中使用自增ID?
我想用代码添加用户。就像插入后的user_id 是1 代码将是US1 同样如果插入后的user_id 是954 代码将是US954
这就是我目前正在做的事情
"INSERT INTO `users` (`user_id`, `user`, `code`) VALUES (NULL, 'Alice', NULL);"
然后在 PHP (Codeigniter) 中检索最后一个插入 id
$insert_id = $this->db->insert_id();
然后使用自动递增 id 更新代码
"UPDATE `users` SET `code` = CONCAT('US', '" . $insert_id . "') WHERE `user_id` = " . $insert_id . ";";
你是否可以在 MYSQL 的单个 INSERT QUERY 中做到这一点?
编辑: 这与Insert/ update at the same time in a MySql table? 不同。因为这个问题同时询问两个用户的并发操作,这不是我的问题
【问题讨论】:
-
不,考虑一下,你问是否有可能在鸡下蛋之前得到鸡蛋!
-
“你问是否有可能在鸡下蛋之前得到鸡蛋!”是什么让我想知道是先有鸡还是先有蛋? @SPlatten
-
@RaymondNijland 哈哈,我现在明白了。
-
@RaymondNijland, :) 在这种情况下,一旦插入记录,您就可以获得最后一个插入 ID,但这里需要使用相同的 ID...我建议编写一个存储的使您能够更轻松地管理此类事情的过程。
-
"在这种情况下,一旦插入记录,您可以获得最后一个插入 ID,但这里需要使用相同的 ID。"我知道@SPlatten 我确实发布并删除了一个关于
LAST_INSERT_ID()的答案.. 因为它不确定topicstarter 是否需要它并且因为它想在一个查询中完成它。