SQL:是否可以将INSERT和SELECT语句合并为一个

时间:2010-10-03 13:26:49

标签: sql mysql insert

我想使用SQLs INSERT语句添加一行。是否有可能作为此语句的一部分,我可以以某种方式获取我不更新的列userId的值,但是是AUTO_INCREMENT主键。我需要此值来更新另一个表,但是我不能立即使用SELECT语句跟随Insert语句,因为表中没有其他唯一标识符可供选择。

INSERT INTO objectUrl(disp_name, loggedIn) VALUES('please change this', true)

是否可以获取行号(列名userId),如果是这样,你是如何做到的?

2 个答案:

答案 0 :(得分:3)

在MySQL中,它被称为LAST_INSERT_ID()。我相信技术上是正确的,这两个语句应该包含在一个事务中,以便其他一些INSERT不会弄乱你得到的ID。

在SQL Sever中你有IDENT_CURRENT('tablename'),它只会从那个表中获取它(仍然需要一个事务是安全的)。你也可以使用SCOPE_IDENTITY(),理论上它总是会返回你期望的那个,只要你没有对你的连接做一些奇怪的事情。

答案 1 :(得分:2)

对于MySQL,你有:

select last_insert_id()