使用SQLITE,我有2个表Employee(标识,名称,电话,任务名称)和Tasks(标识,名称,日期,Employee_id)
我想在更新行后添加触发器以从任务表中获取任务名,其中employeee_id相同。我认为这将需要使用SELECT INTO NEW.taskname,但我似乎无法正确执行。我尝试过。
CREATE TRIGGER "gettaskname"
AFTER UPDATE
ON "Employee"
BEGIN
SELECT Tasks.name FROM Tasks INTO NEW.task_name WHERE NEW.id = Tasks.Employee_id;
END;
我遇到语法错误
我发布此答案,因为没有人回答,有一些非常有趣的评论。我找到了此线程creating variable inside trigger,但它对我不起作用,并且由于使用PRAGMA和CREATE TEMP TABLE而出现语法错误。
这对我有用:
CREATE TRIGGER "gettaskname"
AFTER UPDATE
ON "Employee"
BEGIN
UPDATE Employee SET task_name = (SELECT Tasks.name FROM Tasks WHERE NEW.id = Tasks.Employee_id) WHERE id = NEW.id;
END;