在MYSQL数据库里,现在有student表,我创建一个stu表,然后给student增加触发器,当心新增或更新一条分配数据的时候(fstu=2),在stu中增加一条同样的记录,这个怎么做啊?求大神指导一下。谢谢数据库MySQL

解决方案 »

  1.   

    举例说明
    insert into stu select * from student where id=new.id
      

  2.   

    假设ID唯一,且两表结构一致
    CREATE TRIGGER testref BEFORE INSERT ON test1
      FOR EACH ROW BEGIN
      insert into stu select * from student where id=new.id  ;
      END;
      

  3.   


    中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。
      

  4.   


    中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。还有能不能加个QQ联系,我的是:1091779342,谢谢
      

  5.   

    在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这条记录。
      

  6.   


    中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。 insert 触发器不能用old,只能用new ;update触发器可以用new或者old
      

  7.   

    假设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;
      

  8.   


    中间的逻辑最重要了,你不写出来。我知道用create trigger的写法,但是我怎么判断student里的fstu=2我用:old.fstu=2这样不行。 insert 触发器不能用old,只能用new ;update触发器可以用new或者old
    我现在逻辑搞不出来,那我怎么判断fStatus=2?
      

  9.   

    先参考一下MYSQL官方免费手册中的例子亲自写一下吧。如何有具体的问题再把你自己写的代码和错误信息一同贴出,然后大家进行讨论分析。