【问题标题】:how to merge two totally identicall tables?如何合并两个完全相同的表?
【发布时间】:2019-01-17 14:20:52
【问题描述】:

我想合并两个表(比如copy-pastet2t1 的所有行 - 除了id)。

应该像往常一样在t1 中为每个插入的行创建新的id

两张表完全相同——每一行、每一列都相同。

其实t2是通过复制t1创建的;

我试过这个:

insert into t1 (date, img, roll... all t1 columns except id)
select date, img, roll... all t2 columns except id ... from t2;

结果 - t1.rows 只是被t2.rows替换!!

如何做到这一点?

【问题讨论】:

  • Nothing wrong 与它。
  • 就像您在示例中所做的那样......检查得更好......插入不是更新,因此不会替换行而是添加行
  • “没有错。”唯一可能导致基于大型(磁盘)的临时表处理以复制可能很糟糕的大型表.. @Cid
  • @RaymondNijland 那条评论不是关于性能/资源的使用,而是关于语法。
  • @RaymondNijland 那么,我误解了你的意思。

标签: mysql merge


【解决方案1】:

以下是如何实现此目的的示例:

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

您可以找到更多示例here in w3school

虽然我没有得到合并到相同表的意义..

【讨论】:

  • 我猜你从来没有找到w3fools.com ? “当 W3Fools 于 2011 年推出时,开发人员的文档状态很差。该站点记录了 W3Schools 网站的许多内容错误和问题 今天,W3Schools 已在很大程度上解决了这些问题,并解决了大多数签名开发人员的担忧” 注意它说“很大程度上解决”更好的是链接到真正的 MySQL 文档而不是 w3school
  • 我认为 w3school 的例子更容易理解,但我明白你的意思。这是MySql官方文档的链接link
  • 我在 W3School 中发现了一些愚蠢的东西。最后我注意到关于MAX() 参数。 W3School :“必需。一个数值(可以是字段或公式)”(没有别的)。 MySQL 官方文档:“可以接受字符串参数;在这种情况下,它返回最大字符串值”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多