一个表中的触发器想要向另一个表插入数据

createtriggergoods_1beforeinsertongoodsforeachrowbegininsertintoshoujian(worker)value... create trigger goods_1 before insert on goods for each row
begin
insert into shoujian(worker) value(select worker from worker where address=new.jijianrenaddress)
end
goods表中的触发器,要插入worker中的数据worker的值到shoujian表的worker字段
显示select worker from worker where address=new.jijianrenaddress是有错的,这样的触发器应该怎么写呢?
是mysql的
展开
 我来答
宇都宫美纪
推荐于2017-11-26 · TA获得超过117个赞
知道答主
回答量:118
采纳率:0%
帮助的人:106万
展开全部
这个你得建插入、删除和更新三种触发器
create trigger tr_in_选课表 on 选课表
FOR INSERT
as
update 课程表 set 选课人数=选课人数+1 where 课程编号=(select 课程编号 from inserted)
go
--删除的,删除时那就要减1
create trigger tr_del_选课表 on 选课表
FOR DELETE
AS
update 课程表 set 选课人数 = 选课人数-1 where 课程编号=(select 课程编号 from deleted)
GO

--更新选课表的时候
create trigger tr_up_选课表 on 选课表
FOR update
as
----如果更新的是课程编号,即本来先的是英语,后来改数学了
if update(课程编号) begin
update 课程表 set 选课人数=选课人数-1 where 课程编号=(select 课程编号 from deleted)
update 课程表 set 选课人数=选课人数+1 where 课程编号=(select 课程编号 from inserted)
---第一行把旧编号的选课人数-1
--第二行把新编号的选课人数+1
end
--- 大体上就是这么一个逻辑,自己再稍微按需完善一下即可。
GO
追问
可以了,谢谢
华夏日长兴
2014-07-01 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3695万
展开全部
create trigger goods_1
  before insert on goods
  for each row
begin
  insert into shoujian
    (worker) 
    select worker from worker where address = :new.jijianrenaddress;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式