A 用户表有2000以上的用户数据记录。 例如三个字段 id  username  password.我现在要从A表中取出这些数据,插入到B表,例如三个字段 id username password.如果B表中有用户名相同的,则将B表中的密码更新到与A表的相同用户名的密码一样。怎样写啊。

解决方案 »

  1.   

    insert into b
    select * from a
    ON DUPLICATE KEY UPDATE password=VALUES(password);
      

  2.   

    或者
    REPLACE b   SELECT * from a;
      

  3.   

    REPLACE INTO b(id,username,password)
        SELECT id,username,password from a
      

  4.   

    REPLACE INTO b
       SELECT * from a;
      

  5.   

    非常谢谢楼上的几位高手的解答!!!小弟再接着有个问题,如果 a表  和 b表 分别是两个不同服务器上的不同数据库名的呢。怎么处理。例如:a表,是在 
    host: 168.56.41.11
    数据库用户名: aroot
    数据密码: apassword      b表,是在 
    host: 268.56.71.11
    数据库用户名: broot
    数据密码: bpassword如果这样,应该怎样处理啊???
      

  6.   

    在host: 168.56.41.11建个FEDERATED 表CREATE TABLE xxx_b (
        id     INT(20) NOT NULL AUTO_INCREMENT,
        username   VARCHAR(32) NOT NULL DEFAULT '',
        password   VARCHAR(32),
        PRIMARY KEY  (id)
    )
    ENGINE=FEDERATED
    CONNECTION='mysql://broot:[email protected]:3306/dbname/b表';
    然后就和楼上的操作一样了。