使用INSERT ... SELECT复制后,我有比以前更多的记录

时间:2015-10-26 23:15:08

标签: mysql

我有一个奇怪的事情:我在MySQL 5.6.14中将~4.7m记录从一个表复制到另一个表,使用INSERT INTO tabl1(col1,...)SELECT(col2 ...)FROM tbl2 ...和我有比以前更多的记录。确切地说是640。

我通过在两个表上执行选择计数(*)来检查,从旧表中减去新表(这给了我-640)。

有什么想法吗?我想知道额外的640条记录来自哪里。

两者都是InnoDB;旧表是拉丁字符集,新表是utf8。怀疑这个方程式的一部分,但也许有更多exp的MySQL会知道。

SQL语句示例:

jor %>% ggvis(~long, ~lat) %>%
  layer_paths(data = jor %>% group_by(name), 
              strokeWidth := 0, fill = ~lat) %>%
  hide_axis("x") %>% hide_axis("y") %>%
  add_tooltip(function(data){paste("Gov: ", data$name, "<br>", "Total: ", as.character(data$lat))}, "hover")

接收记录的表是新的,其中有0条记录,并且从未有过记录。此外,它不是一个生产环境,所以除了这一个声明之外,什么都不应该添加记录。

1 个答案:

答案 0 :(得分:1)

试试这个:

  1. 如果表已存在于数据库中,请先删除该表。这样您就可以确定import codecs f = codecs.open('unicode.rst', encoding='utf-8') for line in f: print repr(line) 不会有任何额外数据。

    DROP TABLE IF EXISTS tabl1;

  2. 使用tabl1语句重新创建要复制的表tabl2,将create table中的所有内容复制到tabl2,如下所示:

    CREATE TABLE tabl1 SELECT * FROM`tabl2