2

我的一个项目面临一个问题。我有一个清单上传,它将数据从 csv 导入到 innodb 表。这里发生的事情是使用多个加载数据命令(我想)自动增量值设置为 18446744073709551615 并且不允许其他插入工作。它以前工作正常。我不确定表中的大量数据是否会导致此问题。

表格详情如下

软件版本:5.5.31-0ubuntu0.12.04.1-log - (Ubuntu)

使用的最大插入 ID:17455787099

表中的行数:23887371

与此相关的一些变量如下

auto increment increment 1 auto increment offset 1 autocommit ON automatic spprivilege ON innodb autoextend increment 8 innodb autoinc lock mode 1 sql auto is null OFF Documentation

我已经从表中删除了删除查询。但是自动记录仍然不同步

任何帮助深表感谢

谢谢

尼廷

4

1 回答 1

2

自动增量值设置为 18446744073709551615-使用的最大插入 ID:17455787099

这有点令人困惑。

在加载新文件之前尝试重置自动增量值:

ALTER TABLE tableName AUTO_INCREMENT = 1

编辑:

创建一个新的相同表:

CREATE TABLE tableName LIKE oldtableName;

将所有行复制到新表中,记住不要选择 auto_incrementing id。

INSERT INTO tableName (field2, field3, field4)
SELECT field2, field3, field4 FROM oldtableName ORDER BY oldtableName.id;
DROP oldtableName;
RENAME tableName oldtableName;

这将需要一段时间(数小时..或更多)。

编辑2

如果您的 id 列没有被任何东西引用

ALTER TABLE tableName DROP id

ALTER TABLE tableName ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id), AUTO_INCREMENT=1
于 2013-08-13T07:55:27.253 回答