【问题标题】:MYSQL Replace entire table with another oneMYSQL 用另一个替换整个表
【发布时间】:2016-10-17 15:05:18
【问题描述】:

我正在努力实现这一目标。 假设我有两个数据库 - db1 , db2。 他们每个人都有一个名为 tb 的表,两者的表结构相同,但是记录不同。 有什么优雅的方法可以用 db1.tb 中的记录替换 db2.tb 中的所有记录。 我想我可以用 php 实现这一点,但我正在寻找一种优雅的方式。

【问题讨论】:

  • 只是盲目地替换记录,还是某些字段决定/允许您决定应该替换哪些数据?例如:替换匹配的 ID 等...表格有限制吗?可能需要重建表的索引?定义“优雅的方式”...
  • 我认为 OP 想要一个 in db 解决方案,而不是通过 PHP 来实现。 @nikksan 你试过stackoverflow.com/questions/22912167/…

标签: mysql


【解决方案1】:

您可以 TRUNCATE(如果您想删除 db2 中的所有现有数据),然后 INSERT:

TRUNCATE db2.tb;
INSERT INTO db2.tb SELECT * FROM db1.tb;

【讨论】:

    【解决方案2】:

    您可以使用 sql 截断一张表,然后将另一张表中的数据插入其中。

    将其放入事务以确保其安全。 http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-transactions.html

    TRUNCATE test.stuff;
    INSERT INTO test.stuff SELECT * FROM testdb.stuff;
    

    【讨论】:

      【解决方案3】:

      您可以通过选择删除和​​创建

       DROP Table  db2.your_table ;
      
       Create table db2.your_table
       select * from db1.your_table;
      

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        • 2016-02-18
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 2014-02-19
        相关资源
        最近更新 更多