我有两张桌子:
表A包含多列,表B包含两列。
在表A中插入新行后我想要做的是:
希望有人可以提供帮助,因为我无法找到解决方案。
感谢您提供的任何帮助。
答案 0 :(得分:0)
以下是Oracle语法,因此有人需要将其转换为MYSQL。 在触发器中完成的工作应始终保持最小,因此其他编写者 当他们说你可能想要找到一种不同的方式时,这是正确的。
我发现你对列的引用令人困惑,所以我用FK代替了PK 列名。
CREATE OR REPLACE TRIGGER tablea
AFTER INSERT OR DELETE
ON tablea
REFERENCING NEW AS new OLD AS old
FOR EACH ROW
BEGIN
IF INSERTING
THEN
UPDATE tableb
SET cnt = cnt + 1
WHERE fk = :new.pk;
IF SQL%ROWCOUNT = 0
THEN
INSERT INTO tableb (
fk, cnt
)
VALUES (:new.pk, 1);
END IF;
END IF;
IF DELETING
THEN
UPDATE tableb
SET cnt = cnt - 1
WHERE fk = :old.pk;
END IF;
END;