如何从触发器SQL获取列值

时间:2018-11-22 16:39:47

标签: sql database-trigger

CREATE TRIGGER SalesInsertTrigger
ON Sales
AFTER INSERT
AS
    DECLARE @itemID int;
BEGIN
    Select @itemID = //Help here pls

因此,在sales表中,它们是称为item_id的列。我如何在插入的行中获取item_id,以便可以将其放入上面声明的变量中。

2 个答案:

答案 0 :(得分:0)

您可以使用inserted变量来访问行。另请参阅文档Scroll down to the bottom for examples

答案 1 :(得分:0)

如果使用MySQL,则可以使用NEW和OLD关键字。由于触发器是在插入后调用的,因此NEW和OLD将包含相同的值。

对于您给定的代码,触发条件如下:

CREATE TRIGGER SalesInsertTrigger 
AFTER INSERT ON Sales
FOR EACH ROW
SET @itemID = NEW.item_id;  //required column name 

由于它是一行,因此我们可以像这样直接编写它,而无需使用BEGIN和END来避免更改DELIMITER。

要稍后使用变量的值,可以使用SELECT @itemID查询。这将返回变量值。