插入触发器后的Firebird-在插入的行中插入时间戳

用户名

我有一个名为“时间戳”类型的字段,称为“ inserted_when”。插入后如何更新此字段(插入时间戳记)(因此它仅适用于选定的插入记录)?通过触发当然...编辑:

我尝试了此操作,但似乎无法使未注释的部分起作用。

SET TERM ^ ;
CREATE TRIGGER AFTER_INSERT FOR MYTABLE
ACTIVE AFTER INSERT POSITION 1
AS
BEGIN
      UPDATE MYTABLE 
      SET MYTABLE.inserted_when = current_timestamp;

   ---- where mytable.ID = Inserted.ID
END^

SET TERM ; ^
马克·罗特·韦尔

要更新要插入的记录,您需要使用BEFORE UPDATE触发器,而不是AFTER UPDATE触发器。可以通过NEW上下文变量(还有一个OLD上下文变量,但是与插入触发器无关)来访问(和更新)要插入的行的值请注意,Firebird每行触发一次火灾。

因此,您需要将触发器更改为:

CREATE TRIGGER BEFORE_INSERT_MYTABLE FOR MYTABLE
ACTIVE BEFORE INSERT
AS
BEGIN
      NEW.inserted_when = current_timestamp;
END

请注意,OLD上下文变量永远不可修改,并且NEW上下文变量只能在BEFORE触发器中进行修改

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章