我想使用SQLs INSERT语句添加一行。是否有可能作为此语句的一部分,我可以以某种方式获取我不更新的列userId的值,但是是AUTO_INCREMENT主键。我需要此值来更新另一个表,但是我不能立即使用SELECT语句跟随Insert语句,因为表中没有其他唯一标识符可供选择。
INSERT INTO objectUrl(disp_name, loggedIn) VALUES('please change this', true)
是否可以获取行号(列名userId),如果是这样,你是如何做到的?
答案 0 :(得分:3)
在MySQL中,它被称为LAST_INSERT_ID()。我相信技术上是正确的,这两个语句应该包含在一个事务中,以便其他一些INSERT不会弄乱你得到的ID。
在SQL Sever中你有IDENT_CURRENT('tablename'),它只会从那个表中获取它(仍然需要一个事务是安全的)。你也可以使用SCOPE_IDENTITY(),理论上它总是会返回你期望的那个,只要你没有对你的连接做一些奇怪的事情。
答案 1 :(得分:2)
对于MySQL,你有:
select last_insert_id()