我正在使用 SQL 和 Oracle 数据库,需要一些帮助 - 触发器是我很难理解的东西。
当我向表 A 中插入一行时,我需要一个触发器,以便它更新表 B 上的行:特别是其主键与刚刚添加到表 A 的行的相应外键匹配的行。
例如,表 A 中的 X 列是引用表 B 中的 Y 列(主键)的外键。当我向表 A 添加一行时,我需要表 B 的 Z 列将 1 添加到 X 列 = Y 列的行中的数值中。
这是我迄今为止在 SQL 中基于我对触发器的有限理解所得到的,以防它有帮助(我意识到它不是很好,将其视为伪代码):
CREATE OR REPLACE TRIGGER test_trig
AFTER INSERT OR UPDATE ON tableA
FOR EACH ROW
BEGIN
UPDATE tableB
SET columnZ = columnZ + 1
WHERE tableA.columnX = tableB.columnY;
END test_trig;
/
Thanks
尝试这个 :
语法将是
CREATE OR REPLACE TRIGGER test_trig
AFTER INSERT OR UPDATE ON tableA
FOR EACH ROW
BEGIN
UPDATE tableB
SET columnZ = columnZ + 1
WHERE tableB.columnX = :NEW.columnX;
END test_trig;
/
:new.columnX 引用表A的columnX。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)