我在mysql数据库中有3个表链接到我的问题跟踪器。 表格是:
create TRIGGER save_Assignee AFTER INSERT ON changeitem
FOR EACH ROW
BEGIN
SET new.assignee=(select assignee from jiraissue INNER JOIN changegroup ON jiraissue.ID=changegroup.issueid)
END
如果发生任何变化,例如更改身份或发出受让人的问题, table change_group将有新的记录。一个goupid与change_item表中的一个或多个记录匹配。例如,在group_id上可以保存问题的状态和受让人的更改: 现在 根据不断变化的问题受让人我在问题表中添加了一个带有受让人姓名的列,我希望有一个触发器,当发生更改时保存assigee字段的快照。我试过这个:
grails test-app MessageServiceSpec
似乎我不能同时使用触发器进行内部连接。
如果有人对此有任何想法,我将不胜感激。感谢
MINA
答案 0 :(得分:0)
表"问题"
11 | R& D |用户1
table" changegroup"
12 | 11 | 2015/2/2 16:40
table" change_item"
我希望有一个触发器可以在问题发生变化时保存谁是受让人?
答案 1 :(得分:0)
你想要之前插入触发器,而不是之后插入触发器:
create TRIGGER save_Assignee BEFORE INSERT ON changeitem
FOR EACH ROW
BEGIN
SET new.assignee=(select assignee from jiraissue INNER JOIN changegroup ON jiraissue.ID = changegroup.issueid)
END
我也怀疑你的子查询是错的。它可能返回太多行,因为它需要引用new
。但是,这不是你的问题。如果您确定存在此类问题,请提出另一个问题,包括样本数据和所需结果。