【发布时间】:2017-03-06 18:20:54
【问题描述】:
我想为我的应用程序中的一个用例重置 AUTO_INCREMENT 字段。我知道如何使用下面给出的 ALTER TABLE 语句来做到这一点:
ALTER TABLE tablename AUTO_INCREMENT = 1;
我想知道是否可以在不使用 ALTER TABLE 语句的情况下重置 AUTO_INCREMENT。我想这样做的原因是因为 ALTER TABLE 语句自动提交当前事务。我想这样做的原因是因为我正在执行一系列 mysql 查询,其中我关闭了自动提交并仅在所有查询都成功执行时才提交。在这里,正在执行的查询之一是重置自动增量。但是,ALTER TABLE 语句似乎会自动提交当前事务,从而在发生任何异常时失去原子性。
提前致谢。
【问题讨论】:
-
如果您的数据库设计正确,我想不出任何应该定期更改表的自动增量的情况。顺便说一句,如果没有 ddl 命令,您将无法重置自动增量 - 所有这些都会形成当前事务。
-
实际上,我正在删除表的所有条目并用新条目更新它。因此,如果表之前有 4 个条目,则新条目的 id 将从 5 开始。
标签: mysql