在MYSQL数据库里,现在有student表,我创建一个stu表,然后给student增加触发器,当新增或更新一条分配数据的时候(fstu=2),在stu中增加一条同样的记录。 比如:student表里是这样的: id name fstu 1 xx 2 2 ss 0 3 aa 2 4 dd 0 stu表里是空表 id name fstu这不因为fstu=2对吧,那就把fstu=2的记录插入到stu里,这样的话stu表里就是 id name fstu 1 xx 2 3 aa 2 如果我把student表里的fstu的2改成0,那么stu表里相应的id=3这条记录就要去掉。 同理如果我修改student表里的id=4这行把fstu的0改为2,那stu里再插入id=4这条记录。
假设ID唯一,且两表结构一致 CREATE TRIGGER testref BEFORE INSERT ON student FOR EACH ROW BEGIN if new.fstu=2 then insert into stu select * from student where id=new.id ; end if; END; CREATE TRIGGER testref before update ON student FOR EACH ROW BEGIN if new.fstu=0 then delete from stu where id=new.id ; end if; END;
insert into stu select * from student where id=new.id
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
insert into stu select * from student where id=new.id ;
END;
中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。
中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。还有能不能加个QQ联系,我的是:1091779342,谢谢
比如:student表里是这样的:
id name fstu
1 xx 2
2 ss 0
3 aa 2
4 dd 0
stu表里是空表
id name fstu这不因为fstu=2对吧,那就把fstu=2的记录插入到stu里,这样的话stu表里就是
id name fstu
1 xx 2
3 aa 2
如果我把student表里的fstu的2改成0,那么stu表里相应的id=3这条记录就要去掉。
同理如果我修改student表里的id=4这行把fstu的0改为2,那stu里再插入id=4这条记录。
中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。 insert 触发器不能用old,只能用new ;update触发器可以用new或者old
CREATE TRIGGER testref BEFORE INSERT ON student
FOR EACH ROW BEGIN
if new.fstu=2 then
insert into stu select * from student where id=new.id ;
end if;
END; CREATE TRIGGER testref before update ON student
FOR EACH ROW BEGIN
if new.fstu=0 then
delete from stu where id=new.id ;
end if;
END;
中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。 insert 触发器不能用old,只能用new ;update触发器可以用new或者old
我现在逻辑搞不出来,那我怎么判断fStatus=2?