我是创建数据库触发器的新手,但是我无法使第二个触发器正常工作。
在表工作流程中插入新记录时,需要根据表客户端中的城市来调整工作人员。
客户编号是两个表之间的关系值。
这是我到目前为止写的:
CREATE OR REPLACE TRIGGER automatic_workflow
BEFORE INSERT ON workflow
for each row
when(new.subject='Account' and new.fase=1)
BEGIN
if
(:new.number=client.number) and client.city='Amsterdam' then new.worker ='Bill';
end if;
END;
答案 0 :(得分:0)
尝试像这样在开始处放置定界符:
DELIMITER //
CREATE OR REPLACE TRIGGER automatic_workflow
BEFORE INSERT ON workflow
for each row
when(new.subject='Account' and new.fase=1)
BEGIN
if
(:new.number=client.number) and client.city='Amsterdam' then new.worker ='Bill';
end if;
END;
//
答案 1 :(得分:0)
什么是client
?触发器中未定义它。
我怀疑您可能想要
CREATE OR REPLACE TRIGGER automatic_workflow
BEFORE INSERT ON workflow
FOR EACH ROW
WHEN (new.subject = 'Account' and new.fase = 1)
BEGIN
IF EXISTS (SELECT 1
FROM client c
WHERE c.number = :new.number and
c.city = 'Amsterdam'
) THEN
new.worker = 'Bill';
END IF;
END;