【问题标题】:MySQL concatenate two tables [duplicate]MySQL连接两个表[重复]
【发布时间】:2017-08-18 18:50:40
【问题描述】:

我有两个结构几乎相同的 MySQL 表,我想将其中一个表中的数据导入到另一个表中。我运行 Codeigniter 并尝试从其中一个表中选择所有数据并插入到另一个表中,但似乎效果不佳。

表格结构:url、text、source、img、date

【问题讨论】:

  • 我知道这不是字面上的重复,但它足以让你到达那里。如果您在使用 INSERT SELECT 后仍然遇到问题,请创建一个新问题,其中包含您正在使用的相关代码以及错误消息是什么。
  • INSERT INTO table1 (col1,col2,col3,col4,col5) SELECT column1,column2,column3,column4,column5 FROM table2 我希望这会奏效。
  • @RishiKalal 这是我运行 无法从存储引擎读取自动增量值时得到的结果。这两个表有一个小的区别:其中一个有一个名为 id 的列(具有自动增量),另一个没有。

标签: php mysql codeigniter


【解决方案1】:

如果您想将 table1 中的条目复制到 table2 中,您可以执行以下查询:

Insert into table1 select * from table2

或者您可以排除 id 列,如下所示:

INSERT INTO table1 (url,text,source,img,date) SELECT url, text, source, img, date FROM table2

如果你使用 CodeIgniter 3,你可以这样做

 $select_result = $this->db->select('*')->get('table1');
            if ($select_result->num_rows()) {
                $this->db->insert_batch('table2', $select_result->result_array());
            }

【讨论】:

  • 为简单起见加 1 :)
  • 这是我运行 无法从存储引擎读取自动增量值时得到的结果。这两个表有一个小的区别:其中一个有一个名为 id 的列(具有自动增量),另一个没有。
  • 检查更新的答案
  • @AamirR 已经尝试过了。同样的错误。
  • 可能你的表存储有问题,你可以重置那个表的自增值,比如ALTER TABLE table_name AUTO_INCREMENT=1
猜你喜欢
  • 2018-03-09
  • 2011-11-25
  • 1970-01-01
  • 2011-04-27
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
相关资源
最近更新 更多