我有一个带有 ID 的表,这个 ID 是自动增量和主键,我第一次插入该表时,ID 从 0 开始,但是在我从该表中删除所有值并再次插入后,ID 不'不是从0开始,而是从ID的最后一个值开始,请问出了什么问题?我可以将值重置为 0 吗?
问问题
22076 次
4 回答
18
您可以使用截断表
TRUNCATE `table`
截断将删除表中的所有数据。请注意, usingTRUNCATE
也不会触发任何 DELETE 触发器,例如DELETE
.
或者您可以使用重置计数
ALTER TABLE `table` AUTO_INCREMENT = 1
然而,这是预期的行为。除非桌子真的是空的,否则不要做后者。
于 2012-05-25T11:27:17.133 回答
5
要插入值为 0 的主键,请首先执行以下请求:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
于 2014-01-07T16:51:46.190 回答
3
删除表中的所有元素不会影响主键。主键仍会从其最后一个值自动递增。
如果要重置主键,可以尝试截断表:
TRUNCATE TABLE yourtable;
这会清除 yourtable 中的所有元素。是否重置主键取决于您的数据库。使用 Mysql 它应该可以工作,因为 Mysql 在 TRUNCATE 上删除并重新创建表。
于 2012-05-25T11:28:48.677 回答
1
您必须使用 TRUNCATE 语句从 1 重新启动 auto_increment。这是避免制动的正常行为。
于 2012-05-25T11:25:01.703 回答