代码:
create or replace TRIGGER populate_title
AFTER INSERT
ON SITES
BEGIN
INSERT INTO sites
( job_title )
VALUES
( (SELECT title FROM jobs WHERE job_id IN (SELECT job_id FROM SITES) );
END;
基本上,我们正在尝试填充列中的字段" job_title"在桌子上#34;网站,"但是信息在另一张桌子上,"工作。"我们有错误,现在卡住了。请帮忙。
答案 0 :(得分:0)
首先,如果您设法将其编译,您可能会遇到变异表问题。
触发器应写为before insert
触发器:
create or replace TRIGGER populate_title
BEFORE INSERT
ON SITES
BEGIN
SELECT j.title INTO :NEW.job_title
FROM jobs j
WHERE j.job_id = :NEW.job_id;
END;
然而,触发这个是荒唐。获取此信息的正确方法是查询并使用JOIN
:
select s.*, j.title
from sites s join
jobs j
on s.job_id = j.job_id;