【问题标题】:Renew Auto Increment in MySql在 MySql 中更新自动增量
【发布时间】:2019-03-04 21:41:17
【问题描述】:

假设我有一个名为“ID”的自动递增列,它像 1、2、3、4 一样继续,但在 4 之后我希望它再次从 1 开始。 所以它会像 1,2,3,4,1,2,3,4,1,2...等等。 那么如何将自动增量重新初始化为0呢? 我也试过这个,但没有解决方案。

ALTER TABLE 'TABLENAME' AUTO_INCREMENT=0

【问题讨论】:

  • 为什么要对ID 列使用重复值?
  • 无论是通过触发器还是在插入对象时,您都必须手动执行此操作。
  • 实际上,没有人需要像这样存储数据。您可以只取常规 ai 的模数
  • 呼应@Strawberry。告诉我们你真正追求的是什么,因为做你想做的事绝对不是解决办法。

标签: mysql


【解决方案1】:

不要将数据存储与数据检索和展示混为一谈

create table my_table (id serial primary key);

insert into my_table values 
(1),(2),(3),(4),(5),(6),(7),(8),(9);

select id, mod(id-1,3) x from my_table;
id x
 1 0
 2 1
 3 2
 4 0
 5 1
 6 2
 7 0
 8 1
 9 2

http://sqlfiddle.com/#!9/7f460/3

另请注意,“x”的构造可以在应用程序代码中同样轻松(也许更有效)处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2011-05-25
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多