【发布时间】:2015-09-11 21:06:01
【问题描述】:
当我尝试使用最后一次操作的@@Identity 值覆盖变量时,我在存储过程中遇到了问题。我会写一个例子:
DECLARE out_result BIGINT(20);
SET out_result = -1;
UPDATE tableName SET name = "pippo" WHERE id = 12;
SELECT @@Identity INTO out_result;
-- here it works great and out_result value is 12
IF out_result > 0 THAN
UPDATE otheTableName SET address = "Route 666" WHERE id = 37;
SELECT @@Identity INTO out_result;
END IF;
我希望如果第一次操作成功,变量 out_result 大于 0,现在代码将进行第二次更新,就是这样。 在第二次更新之后(但它也可能是例如删除),我希望 out_result 变量将采用第二次更新的值(在本例中为 out_result = 37),但事实并非如此。这里 out_result 仍然等于 12。一些想法将不胜感激。谢谢。
【问题讨论】:
-
@@Identity???你是在说MySQL还是MSSQL?
标签: mysql database stored-procedures crud identity