mysql> select * from a;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | A1   |   10 |
|    2 | A2   |   20 |
+------+------+------+mysql> select * from b;
+------+------+------+
| rid  | id   | age  |
+------+------+------+
|    5 |    2 |   20 |
+------+------+------+
希望在表a的age字段更新的时候能够触发表b相应的age字段也更新:
如:
update a set age=age+1 where id=2;
相关的表变为:mysql> select * from a;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | A1   |   10 |
|    2 | A2   |   21 |
+------+------+------+mysql> select * from b;
+------+------+------+
| rid  | id   | age  |
+------+------+------+
|    5 |    2 |   21 |
+------+------+------+

解决方案 »

  1.   


    create trigger update_trig after update on a
    for each row
    begin
        update b set age=NEW.age where id=NEW.id;
    end
      

  2.   

    delimiter |CREATE TRIGGER tr_a_au AFTER INSERT ON a
      FOR EACH ROW BEGIN
        UPDATE b SET age = new.age WHERE id = NEW.id;
      END;
    |delimiter ;
      

  3.   

    create trigger update_trig after update on a
    for each row
    begin
        update b set age=NEW.age where id=NEW.id;
    end不应该是update吗
      

  4.   

    应该是update CREATE TRIGGER tr_a_au AFTER UPDATE ON a
      

  5.   

    多谢前辈的指导
    我已经测试过了
    正确写法
    CREATE TRIGGER bbs1 AFTER UPDATE ON
    a FOR EACH ROW update b set age=NEW.age where id=NEW.id;
    ---------------------
    绿色php资源 绿色php资源