【问题标题】:Auto Increment value according to previous根据先前的自动增量值
【发布时间】:2019-05-07 13:08:37
【问题描述】:

当我从 mysql 表中删除一条记录并在那个地方插入一条新记录时,它会将自动递增列值设置为我最后插入的下一个,这不是预期的

我在许多网站上搜索过它,但没有得到我想要的确切结果 我还尝试设置 last_inserted_id()+1 如下:

Alter table t1 auto_increment = last_insert_id() + 1;

但它显示错误

我想将该值设置在上一条记录的自动增量值旁边,

请帮忙, 谢谢。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    为什么你想这样做?自动增量列的合同并没有说id 将始终跟随下一个顺序值。它只是说它永远是独一无二的,并且通常会增加。

    如果您想生成一个序列,请使用类似ROW_NUMBER(在 MySQL 版本 8+ 中):

    SELECT ROW_NUMBER() OVER (ORDER BY auto_increment) AS rn
    FROM yourTable;
    

    或者,在早期版本的 MySQL 中,使用用户变量:

    SET @row_number = 0;
    
    SELECT 
        (@row_number:=@row_number + 1) AS rn
    FROM yourTable
    ORDER BY auto_increment;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2021-07-22
      • 2020-05-25
      • 1970-01-01
      相关资源
      最近更新 更多