0

我写了一个触发器

CREATE TRIGGER myTrigger
INSTEAD OF INSERT ON myTable
EXECUTE PROCEDURE myFunction(); 

但我了解到INSTEAD OF触发器不能应用于表。

唯一的方法应该是使用

BEFORE OF INSERT

触发器应该在另一个表上检索一些值(当用户调用插入函数时未知)并将这个值插入到触发查询中并执行它。我怎样才能做到这一点?

4

1 回答 1

1

您将编写一个 PL/PgSQL 触发器:

  • 检查tg_op以确定操作是否为INSERT,UPDATEDELETE; 和

  • 根据操作类型,使用NEWand/orOLD伪变量在真实目标表上构造和运行INSERTs、UPDATEs 或s;DELETE然后

  • 返回NULL以便不对原始目标表执行任何操作。

请参阅有关 PL/PgSQL 触发器的基本文档

不过,除非您使用表继承,否则这是一件非常奇怪的事情。

于 2013-08-11T09:58:03.170 回答