【问题标题】:Auto increment in table (database)表(数据库)中的自动增量
【发布时间】:2011-12-26 13:29:54
【问题描述】:

我尝试制作一个任务表,非常频繁地添加/删除项目。 当应用程序上线时,用于存储排队任务和出列任务的表。

当应用中断(重新启动)时,下一个应用生命周期会继续处理未完成的任务,并且可能会再次添加新任务。

表格如下所示:

table Tasks
{
   int ID auto increment

   // another columns
}

我们知道,即使我们删除了之前的记录,id 也会一直递增。 如果 id 达到int.MaxValue 然后我又添加了一些新记录会怎样? id 是否会重置为 1,递增到 2,3,4... 搜索未使用的 id? 如果不是,如何让 id 再次回滚到 1(或任何空闲 id)?

【问题讨论】:

  • 哪个数据库引擎? MySQL、SQL server、Oracle 等(版本也有帮助)

标签: database auto-increment


【解决方案1】:

在 MySQL 中

alter table tbl auto_increment=1;  

但是你必须运行这个命令,它自己什么都不会发生。或在更新/插入之前将其构建为触发器。当尝试输入超过您 ID 最大值的记录时,您将收到错误消息。

http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html 更多信息

警告: 如果保留较早的记录,则执行上述操作可能会导致唯一性或关系出现问题。

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 2012-03-10
    • 2014-11-18
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多