怎样让mysql 同时更新两个数据库中的表?在sqlserver2000中,可以使用触发器更新,但是mysql中似乎语法不一样,不知道有没有好的方法.
例如:有这样两个表  a.a1 和 b.b1 其中,a,b指代数据库,a1和b1分别指对应的数据库中的表,a1和b1的表结构差不多,那如何做到两个表的数据同步更新?最好能以实例说明!
  另外,多说一点,这种具体实现如果想封装到webservice中,应该注意哪些?

解决方案 »

  1.   

    use mytest;CREATE TABLE tb(id int ,data varchar(20));
    insert tb values(1,'aaa');
    insert tb values(2,'bbb');
    insert tb values(3,'ccc');use test;CREATE TABLE tb(id int ,data varchar(20));
    insert tb values(1,'aaa');
    insert tb values(2,'bbb');
    insert tb values(3,'ccc');
    UPDATE mytest.tb,test.tb
        SET mytest.tb.data='liangCK',
            test.tb.data='liangCK'
    WHERE mytest.tb.id=test.tb.id 
        AND mytest.tb.id=2;SELECT * FROM mytest.tb;
    select * from test.tb;
      

  2.   

    sql server一句update只能更新一个表的数据..
    mysql一句update可以更新多个表的数据.更新的时候在set指定哪个表的哪个列要更新...
      

  3.   

    两种方法:
    一:在MySQL的触发器中实现mysql> select version();
    +----------------------+
    | version()            |
    +----------------------+
    | 5.1.33-community-log |
    +----------------------+
    1 row in set (0.00 sec)mysql> CREATE TABLE test.test1(a1 INT);
    Query OK, 0 rows affected (0.09 sec)mysql> CREATE TABLE dbtest.test2(a2 INT);
    Query OK, 0 rows affected (0.05 sec)mysql> delimiter //
    mysql>
    mysql> CREATE TRIGGER testref BEFORE INSERT ON test1
        ->   FOR EACH ROW BEGIN
        ->     INSERT INTO dbtest.test2 SET a2 = NEW.a1;
        ->   END;
        -> //
    Query OK, 0 rows affected (0.08 sec)mysql> delimiter ;mysql> insert into test1 values (1);
    Query OK, 1 row affected (0.08 sec)mysql> select * from test1;
    +------+
    | a1   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)mysql> select * from dbtest.test2;
    +------+
    | a2   |
    +------+
    |    1 |
    +------+
    1 row in set (0.00 sec)二:既然用web service了,那直接在程序中同时向两个库写记录。
      

  4.   

    ACMAIN_CHM :如果还要在触发器中加入增删改的功能,该如何实现呢?
      

  5.   

    如果还要在触发器中加入增删改的功能一样啊,直接在触发器中加上 delete, update就可以了。可参考一下官方文档中的例子
    http://dev.mysql.com/doc/refman/5.1/zh/triggers.html
      

  6.   

    1、用MYSQL的TRIGGER,不过不能对本表进行操作;
    2、执行两条SQL语句。
      

  7.   

    UPDATE * SET ts_ask.'status' = 1, ts_ask_answer.identifying = 1 WHERE ts_ask.askid = ts_ask_answer.askid AND ts_ask_answer.askid = 12