sql触发器问题,编写一个触发器

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:46:41
编写一个触发器,当修改lesson表中的course_id列值时,该列在teacher表中的对应值也做相应修改(这两个表中都有course_id)
假设lesson表中有course_id和course_name两列
teacher表中course_id和name两列

CREATE TRIGGER teacher_lesson ON lesson
FOR UPDATE
AS
begin
declare @course_id1 varchar(50),
declare @course_id2 varchar(50),
select @course_id1=course_id from inserted
select @course_id2=course_id from deleted
if update(course_id)
update teacher set course_id=@course_id1 where course_id=@course_id2
end
前提是course_id 唯一且不为空;
还要lesson表中有的course_id值,teacher表中也要有;

两个表中最好有个关联字段相连接;没有的话会有风险.
你应该是,当插入lesson表中的course_id列值时,该列在teacher表中的对应值也做相应插入
当修改lesson表中的course_id列值时,该列在teacher表中的对应值也做相应修改才对.

直接写体了啊
begin
if updating
update teacher set course_id=:new.course_id where course_id=:old.course_id;
elsif inserting
insert into teacher values(:new.course_id,'name');
elsif deleting
delete teacher where course_id=:new.course_id;
end if;
end;