sql oracle,错误" PL / SQL:忽略SQL语句"和" PL / SQL:ORA-00917:缺少逗号"

时间:2016-10-09 15:34:26

标签: sql oracle triggers

代码:

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;网站,"但是信息在另一张桌子上,"工作。"我们有错误,现在卡住了。请帮忙。

1 个答案:

答案 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;