【问题标题】:MySQL data import auto-increment issueMySQL数据导入自增问题
【发布时间】:2012-10-27 07:34:53
【问题描述】:

我正在尝试将数据导入到具有如下字段的表中:

result_id

此字段设置为AUTO_INCREMENTPRIMARYUNIQUE

我正在导入的数据在result_id 字段中的信息与表中的当前数据相同(在某些地方)。 SQL 不允许我导入,因为有重复项(这很公平)。

有没有办法让 SQL 附加我正在导入的数据而不使用 result_id 中的重复数据,基本上是继续 SQL 字段中的数字。我问的原因是我正在导入大约 25,000 条记录,并且我不想手动删除或更改正在导入的数据中的 result_id 信息。

谢谢,

H.

【问题讨论】:

  • 如果 result_id 值在重复时可以更改,则表明它没有意义,所有内容都可以更改。这是否可能且更容易?

标签: mysql import duplicates auto-increment


【解决方案1】:

您如何将数据导入 MySQL?

如果您使用的是 SQL 查询/脚本,那么应该有类似 INSERT INTO... 的内容。在一些文本编辑器中打开文件并将所有INSERT 替换为INSERT IGNORE。这将忽略插入具有重复主键的行。 或者,如果您想用与导入脚本中相同的主键替换旧数据,则只需使用REPLACE 查询代替INSERT 查询。

希望对你有帮助...

[编辑]

因为你有主键,所以自动递增。在要导入数据的表中,添加一个虚拟列“dummy”并允许它为 NULL。现在,在您的导入脚本中将有类似 INSERT INTO () values () 的语句。现在在列名列表中将“result_id”替换为“dummy”并执行脚本。 执行脚本后,只需从表中删除“虚拟”列。虽然它有点脏和耗时,但会做你的工作。

【讨论】:

  • 抱歉,不是我要找的 - result_id 上有重复项我仍然希望它们很重要,因为实际数据不同。
猜你喜欢
  • 2011-05-03
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 2021-01-17
相关资源
最近更新 更多