当前位置: 首页 > 面试题库 >

获取触发器中最新插入的ID?

谈渊
2023-03-14
问题内容

我使用触发器来插入行,并希望使用上一个创建的ID供后续查询使用。

我该怎么办?

代码如下:

BEGIN
IF (NEW.counter >= 100) THEN
INSERT INTO tagCategories (name, counter) VALUES ('unnamed', NEW.counter);
// here i want to have access to the above inserted id
UPDATE tagCategories2tagPairs SET tagCategoryId = <<ID_HERE>> WHERE tagPairId = OLD.id
END IF;
END

问题答案:

您是否看过LAST_INSERT_ID()?但要注意:

如果使用单个INSERT语句插入多行,则LAST_INSERT_ID()仅返回为第一个插入行生成的值。



 类似资料:
  • 不管怎样,感谢所有人的回答。

  • 问题内容: 我有两个桌子和。我需要一些行插入从,它被插入之后。我知道这个问题,但我无法解决。请帮忙。 我为触发器编写了以下代码: 现在,当我插入行时,将添加到,但不添加到。它引发以下错误: _消息515,级别16,状态2,过程trigger_UpdateItemDetails,行11 无法将值NULL插入表’dbStockHandling.dbo.tbl_ItemDetails’的列’Purcha

  • 如何将最新文档插入(一个独立的、没有RS的)MongoDb,而不是现有的集合? 如何在文档之后插入所有文档?

  • 问题内容: 我有一个分区表,该表具有(我认为)适当的触发器和一些约束。不知何故,语句为每行插入2行:一行用于父行,另一行用于适当的分区。 简要的设置如下: 经过进一步的调试,我隔离了导致它的原因:触发器返回了事实,而不是just 。但是,我确实希望我的insert语句返回自动增量,并且如果我只是返回,则不是这种情况。 有什么解决方案?为什么返回会导致这种看似“奇怪”​​的行为? 更新#1 好吧,我

  • 我创建了一个用于插入和更新的SQL触发器,它基本上执行以下操作: 从插入的表中获取LineID(表的PrimaryID)和RegionID,并将其存储在INT变量中。然后,它对连接表进行检查,以找到RegionID应该是什么,如果RegionID不等于插入表中应该是什么,那么它应该更新该记录。 我的问题是,它没有更新记录,我猜,这是因为记录还没有插入到PurchaseOrderLine表中,我正在

  • 问题内容: 我有两个表,其中一个命名如下 另一个表具有以下字段: SID CID Per 如何为以下内容编写触发器: 如果表h1-h0的任何字段中发生 更新,则使用以下值更新表中的列: ((总数为1s-总数为0s / (总数1s +总数0s))/ 100 在此先感谢 我开发了一个触发器,但是它不起作用,它在第11行说了错误,您能说出什么问题吗? 问题答案: 在定义触发器之前,请确保更改定界符。另外