Postgresql postgres触发传递输入到函数
我试图做一个触发器,当一个值被放入表1时,它会被复制到表2中。我有以下功能,可以正常工作:Postgresql postgres触发传递输入到函数,postgresql,Postgresql,我试图做一个触发器,当一个值被放入表1时,它会被复制到表2中。我有以下功能,可以正常工作: Create function func1(a integer) returns void Language SQL as $$ insert into table2 values (a);$$; 这是触发器(它不起作用): 我正在努力遵循文档。以下是我要特别介绍的部分: CREATE TRIGGER log_update AFTER UPDATE ON accounts FOR EAC
Create function func1(a integer) returns void
Language SQL as $$
insert into table2 values (a);$$;
这是触发器(它不起作用):
我正在努力遵循文档。以下是我要特别介绍的部分:
CREATE TRIGGER log_update
AFTER UPDATE ON accounts
FOR EACH ROW
WHEN (OLD.* IS DISTINCT FROM NEW.*)
EXECUTE PROCEDURE log_account_update();
我认为old.attribute在更改旧行之前提供了旧行的特定属性。如果我错了,请告诉我。谢谢对触发器中调用的函数作了如下说明:
用户提供的函数,声明为不带参数和
返回类型触发器,在触发器触发时执行
此功能可以访问旧的
和新的
对象。您可以修改现有功能:
Create function func1()返回触发器
作为$$
开始
在表2中插入值(旧的属性1);
归还新的;
结束;
$$语言plpgsql;
创建触发器trig1
在更新表1之前
每行
执行函数func1();
当我尝试按照您的描述创建Function func1时,我遇到了一个错误:“SQL函数无法返回类型触发器”
CREATE TRIGGER log_update
AFTER UPDATE ON accounts
FOR EACH ROW
WHEN (OLD.* IS DISTINCT FROM NEW.*)
EXECUTE PROCEDURE log_account_update();