如题,
想实现一个类似如下的功能:
INSERT INTO local_table  SELECT * FROM remote_table where ...其中,local_table是本地(内网)的一个数据库中的表,
remote_table是远程(公网)的一个数据库中的表,
两张表的结构完全一样。
请问,该如何实现呢?
用sql或其它语言都行

解决方案 »

  1.   

    内网建一个表remote_table 用federate引擎,指向公网的那个remote_table 表,然后用上边的那个语句导入
      

  2.   

    安装 FEDERATED 引擎才行
    建个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表'; 
      

  3.   

    如果不安装FEDERATED ,则只能通过导入导出数据来完成
      

  4.   

    用MYSQLDUMP导出,再导入到本地表中,再做处理
      

  5.   

    存储过程不行。
    MYSQLDUMP可以把远程的记录导出,然后再导入到本地数据库。mysqldump 的用法,可以参考手册中的描述和例子。
      

  6.   

    mysqldump -uroot -p >123.txt
    mysql -uroot -p <123.txt
      

  7.   

    另外如果只是某个表,则可以直接select ..INTO OUTFILE 将表中记录查询输出到文件,然后再从数据文件 LOAD DATA INFILE 到表中。
      

  8.   

    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html