我有两张table如下:
表a:名称、id、值
表b:id、标题 TableA.value
取决于 TableA.ID
存在于 TableB.ID
.
我正在尝试创建一个程序和触发器,以便 TableB
修改后,将触发该过程以检查 TableA.ID
在 TableB.ID
和集合 TableA.value
到10。
我正在使用以下代码并得到一个错误:
CREATE PROCEDURE update1
LANGUAGE SQL
AS $$
UPDATE tablA as a
SET a.value = 10
WHERE a.ID EXISTS ( SELECT b.ID
FROM tableB as b
WHERE a.ID = b.ID)
$$;
我是一个SQLNoob,这是我第一次尝试使用过程。
更新
我可以创建一个过程,当我使用 CALL
但是,它没有 RETURNS TRIGGER
在里面堵住。添加返回错误的过程不能返回触发器。
如果我创建一个触发器如下
CREATE TRIGGER b_trigger
AFTER UPDATE OR INSERT ON b.ID
FOR EACH STATEMENT
EXECUTE PROCEDURE update1();
但是,这将返回以下结果
错误:函数columbia\u deli.manager\u discount必须返回类型触发器
sql状态:42p17
1条答案
按热度按时间mccptt671#
用这个试试
plpgsql
语言:触发功能:
然后在上创建触发器
TableB
为了after update
事件