【发布时间】:2019-04-16 13:53:04
【问题描述】:
我想在每次将新行添加到 ArrayA 时创建一个触发器。
这是我使用的代码:
CREATE TRIGGER increasement
AFTER INSERT
ON ArrayA
FOR EACH ROW
EXECUTE PROCEDURE func_increasement();
添加了一行,我需要更新 ArrayB 中的字段,但问题是: 我需要知道已添加的新行的 ID,以便知道在 ArrayB 中增加哪一行。
这是我尝试过的:
CREATE OR REPLACE FUNCTION func_increasement()
RETURNS trigger AS
$$
BEGIN
IF (TG_OP = 'INSERT') THEN
UPDATE ArrayB SET number = number + 1
WHERE ArrayB.id = ( SELECT ArrayA.arraya_id FROM ArrayA WHERE (SELECT COUNT(*) FROM ArrayA));
END;
$$ LANGUAGE plpgsql;
这是我用来获取行总数的查询。
Select Count(*) from ArrayA;
【问题讨论】:
标签: sql postgresql database-trigger