首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用insert触发器引用属性

使用insert触发器引用属性
EN

Stack Overflow用户
提问于 2013-09-19 13:30:00
回答 1查看 77关注 0票数 0

我和高中生有两种关系(ID,名字,年级)和喜欢(ID1,ID2)

我想要做一个插入触发器,将记录插入到喜欢的关系中。

当我在高中关系中插入一个新的高中生时,我想要我的插入触发器将记录插入到“喜欢”中,而基本上,新的高中生喜欢同一年级的每个人。

我想要的是下面的东西:

代码语言:javascript
复制
create trigger R1
after insert on Highschooler
for each row
when (Old.grade = New.grade)
begin
    insert into Likes values(New.ID, Old.ID));   
end;

但是,使用insert触发器,旧引用无效!那么,我如何引用旧属性呢?

@比尔·格雷格:谢谢你的提示和解释。这就是你的建议吗?

代码语言:javascript
复制
create trigger R1
after insert on Highschooler
for each row
begin
    insert into Likes values(hs.ID, old.ID));
    select(hs.ID, old.ID from Highschooler hs, Highschooler old
    where hs.grade = old.grade and hs.ID <> old.ID
end;

我在DBMS上运行了它,它没有执行。我怀疑在插入后使用select语句存在一些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 13:39:08

插入触发器上没有“旧”这样的东西,因为旧行不存在。您只插入一个新行。

我想你要的是

代码语言:javascript
复制
for each row

insert into Likes (FirstID,SecondID)
select hs.id, new.id
from HighShooler hs
where hs.grade = new.grade
and hs.id != new.id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18896020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档