【问题标题】:why did this mysql table copy generate duplicate rows为什么这个mysql表副本会生成重复的行
【发布时间】:2018-06-12 15:06:42
【问题描述】:

我做到了

insert  t1  select *  from  t2;

在创建t1之后复制一个表

CREATE TABLE t1 (
  `c` text COLLATE utf8_unicode_ci,
  `d` text COLLATE utf8_unicode_ci,
  `count` int(11) DEFAULT NULL,
  `d1` double DEFAULT NULL,
  `d2` int(11) DEFAULT NULL,
  `c1` double DEFAULT NULL,
  `c2` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

原始表和重复表的计数显示 69M 与 80M 行,实际上我在复制的表中看到重复的行 - 有人知道为什么会发生这种情况吗?原表是innodb,副本是myisam,难道这就是抄袭的来源?

【问题讨论】:

  • 不能。其他事情正在发生。顺便说一句,我会选择命名字段。
  • 很可能 t1table 在插入之前已经包含记录?
  • 您确定 t2 没有重复项吗?确定 t1 之前是空的吗?
  • Ups,和雷蒙德一样的想法......:D
  • 我猜 raymond/christophs 一定是对的,我再次尝试使用新的 t1 并获得相同的表大小。

标签: mysql database innodb myisam


【解决方案1】:

我总结一下:

复制前确保表 t1 为空

truncate t1;

然后复制你之前的方法并重新计数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2014-11-02
    • 2015-07-17
    • 1970-01-01
    相关资源
    最近更新 更多